通常、ファイルの読み取りまたは書き込みを行う前に、ファイルまたはディレクトリが存在するかどうかを確認する必要があります。そうしないと、特定の処理方法によってプログラム エラーが発生する可能性があります。したがって、操作を実行する前にファイルが存在するかどうかを確認することが最善です。
Golang がファイルまたはフォルダーが存在するかどうかを判断する方法は、os.Stat() 関数によって返されたエラー値を使用して次のことを判断することです:
1. 返されたエラーが nil の場合、ファイルまたはフォルダが存在することを示します フォルダが存在しません
2. 返されたエラーの種類が os.IsNotExist() で true と判定された場合、ファイルまたはフォルダが存在することを意味します
3. 返されたエラーが他のタイプの場合、そのエラーが存在するかどうかは判断されません
// 判断所给路径文件/文件夹是否存在 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) }
注:
FileExist が true を返した場合、ファイルが存在するとは限りません。
ターゲット パスの特定の部分に対する読み取り権限がない場合、os.Lstat と syscall.Access もエラーを返しますが、このエラーによって os.IsNotExist が true を返すことはありません。
ファイルが存在せず、ファイルが存在するディレクトリまたはその上位ディレクトリへのアクセス権がない場合でも、FileExist は true を返し、この時点でバグが発生します。
したがって、重要な点は、ファイルが存在するかどうかを判断する前に、まずファイルとそのパスに対するアクセス権があるかどうかを判断する必要があるということです。
golang についてさらに詳しく知りたい場合は、golang チュートリアル 列に注目してください。
以上がgolangにファイルが存在するかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。