Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menangani "Tiada fail atau direktori sedemikian" dalam os.Stat

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

PHPz
PHPzke hadapan
2024-02-14 18:27:09890semak imbas

如何处理 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(...)
}

Untuk "menangkap" ralat "fail tidak wujud", saya membaca bahawa ia disyorkan untuk digunakan os.isnotexist 来检查错误是否表明文件不存在。但是,os.isnotexist 不会捕获此错误,因为平台返回 open b4ccbf8590d33e2f1a054c2bdc767cf4:没有这样的文件或目录。我可以在此处添加自己的错误处理,但是是否有一种惯用的方法来处理 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

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Pautan sumberArtikel seterusnya:Pautan sumber