首頁  >  文章  >  後端開發  >  如何處理 os.Stat 中的“沒有這樣的檔案或目錄”

如何處理 os.Stat 中的“沒有這樣的檔案或目錄”

PHPz
PHPz轉載
2024-02-14 18:27:09945瀏覽

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

php小編子墨為大家帶來了一個關於如何處理os.Stat中的「沒有這樣的檔案或目錄」問題的指南。 os.Stat是一個用來取得檔案或目錄資訊的函數,但有時當我們嘗試取得一個不存在的檔案或目錄的資訊時,會遇到「沒有這樣的檔案或目錄」的錯誤。在本文中,我們將介紹幾種處理這個問題的方法,以幫助您更好地處理這種情況。無論您是初學者還是有一定經驗的開發者,本文都將為您提供有用的解決方案。讓我們一起來看看吧!

問題內容

我有一段程式碼正在尋找 stat 一個文件,如果該文件不存在,則傳回一些預設值。也就是說,這段程式碼如下所示:

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

要「捕獲」「檔案不存在」錯誤,我讀到建議使用 os.isnotexist 來檢查錯誤是否表示檔案不存在。但是,os.isnotexist 不會捕獲此錯誤,因為平台傳回 open b4ccbf8590d33e2f1a054c2bdc767cf4:沒有這樣的檔案或目錄。我可以在此處新增自己的錯誤處理,但是是否有一種慣用的方法來處理 os 呼叫中的「檔案不存在」錯誤? os.isnotexist 檢查處理的錯誤似乎只是一種潛在的「檔案不存在」錯誤的特殊情況。

解決方法

如果您閱讀文件,您會看到以下內容:

func isnotexist

#
func IsNotExist(err error) bool

isnotexist 傳回一個布林值,指示錯誤是否已知 報告文件或目錄不存在。滿足的是 errnotexist 以及一些 syscall 錯誤。

此函數早於錯誤。它僅支援 os 包返回的錯誤。 新程式碼應使用 errors.is(err, fs.errnotexist)。 [強調。我的]

以上是如何處理 os.Stat 中的“沒有這樣的檔案或目錄”的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除
上一篇:資源連結下一篇:資源連結