Bagaimana untuk menangani 'Tiada fail atau direktori sedemikian' dalam os.Stat

PHPz
Lepaskan: 2024-02-14 18:27:09
ke hadapan
959 orang telah melayarinya

如何处理 os.Stat 中的“没有这样的文件或目录”

Editor PHP Zimo membawakan anda panduan tentang cara menangani masalah "tiada fail atau direktori sedemikian" dalam os.Stat. os.Stat ialah fungsi yang digunakan untuk mendapatkan maklumat fail atau direktori, tetapi kadangkala apabila kami cuba mendapatkan maklumat tentang fail atau direktori yang tidak wujud, kami akan menghadapi ralat "Tiada fail atau direktori sedemikian". Dalam artikel ini, kami akan membincangkan beberapa cara untuk menangani masalah ini untuk membantu anda mengendalikan situasi ini dengan lebih baik. Sama ada anda seorang pemula atau pembangun berpengalaman, artikel ini akan memberikan anda penyelesaian yang berguna. Mari lihat!

Kandungan soalan

Saya mempunyai sekeping kod yang sedang mencari stat fail dan jika fail itu tidak wujud, mengembalikan beberapa nilai lalai. Iaitu, kod ini kelihatan seperti ini:

fileInfo, err := os.Stat(absolutePath)
if err != nil {
    if os.IsNotExist(err) {
        return <default val>, nil
    }
    return nil, fmt.Errorf(...)
}
Salin selepas log masuk

Untuk "menangkap" ralat "fail tidak wujud", saya membaca bahawa ia disyorkan untuk digunakan os.isnotexist 来检查错误是否表明文件不存在。但是,os.isnotexist 不会捕获此错误,因为平台返回 open <blah>:没有这样的文件或目录。我可以在此处添加自己的错误处理,但是是否有一种惯用的方法来处理 os 调用中的“文件不存在”错误? os.isnotexist Semak bahawa ralat yang dikendalikan itu nampaknya hanya kes khas ralat "fail tidak wujud" yang berpotensi.

Penyelesaian

Jika anda membaca dokumentasi anda akan melihat perkara berikut:

func isnotexist

func IsNotExist(err error) bool
Salin selepas log masuk

isnotexist Mengembalikan nilai boolean yang menunjukkan sama ada ralat diketahui Melaporkan bahawa fail atau direktori tidak wujud. puas hati errnotexist 以及一些 syscall Ralat.

Fungsi ini mendahului ralat. Ia hanya menyokong ralat yang dikembalikan oleh pakej os. Kod baharu harus menggunakan errors.is(err, fs.errnotexist). [penekanan ditambah. Saya]

Atas ialah kandungan terperinci Bagaimana untuk menangani 'Tiada fail atau direktori sedemikian' dalam os.Stat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan