您好,登錄后才能下訂單哦!
go語言如何判斷文件是否存在?其實(shí)要解決這個(gè)問題也不難,這篇文章給出了相對應(yīng)的分析和解答,下面我們一起來看看解決方法吧。
通常在讀寫文件之前,需要判斷文件或目錄是否存在,不然某些處理方法可能會使程序出錯(cuò)。所以最好在做任何操作之前,先判斷文件是否存在。
golang判斷文件或文件夾是否存在的方法為使用os.Stat()函數(shù)返回的錯(cuò)誤值進(jìn)行判斷:
1、如果返回的錯(cuò)誤為nil,說明文件或文件夾不存在
2、如果返回的錯(cuò)誤類型使用os.IsNotExist()判斷為true,說明文件或文件夾存在
3、如果返回的錯(cuò)誤為其它類型,則不確定是否在存在
// 判斷所給路徑文件/文件夾是否存在 func Exists(path string) bool { _, err := os.Stat(path) //os.Stat獲取文件信息 if err != nil { if os.IsExist(err) { return true } return false } return true } // 判斷所給路徑是否為文件夾 func IsDir(path string) bool { s, err := os.Stat(path) if err != nil { return false } return s.IsDir() } // 判斷所給路徑是否為文件 func IsFile(path string) bool { return !IsDir(path) }
注:
當(dāng)我們的FileExist返回true時(shí),其實(shí)文件并不一定存在。
當(dāng)我們對目標(biāo)path中的某一部分沒有可讀權(quán)限時(shí),os.Lstat和syscall.Access同樣會返回error,不過這個(gè)error不會讓os.IsNotExist返回true。
當(dāng)文件不存在而你對文件所在的目錄或者它的上層目錄沒有訪問權(quán)限時(shí),F(xiàn)ileExist依舊會返回true,bug就在這時(shí)發(fā)生了。
所以重要的一點(diǎn)是在判斷文件是否存在前應(yīng)該先判斷自己對文件及其路徑是否有訪問權(quán)限。
看完這篇文章,你們學(xué)會go語言判斷文件是否存在的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。