ホームページ >バックエンド開発 >Golang >Go でファイルの存在を確認するにはどうすればよいですか?

Go でファイルの存在を確認するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-26 21:28:10831ブラウズ

How Can I Check for File Existence in Go?

Go でのファイルの存在の確認

Go でファイルを操作する場合、多くの場合、その後の操作を続行する前にファイルが存在するかどうかを確認する必要があります。 。 Python の os.path.exists とは異なり、Go 標準ライブラリはこの目的のための直接関数を提供しません。

ファイルの存在を確認する慣用的な方法

次のことを確認するにはファイルが存在しません:

if _, err := os.Stat("/path/to/whatever"); errors.Is(err, os.ErrNotExist) {
  // path/to/whatever does not exist
}

ファイルがあるかどうかを確認するには存在します:

if _, err := os.Stat("/path/to/whatever"); err == nil {
  // path/to/whatever exists

} else if errors.Is(err, os.ErrNotExist) {
  // path/to/whatever does *not* exist

} else {
  // Schrodinger: file may or may not exist. See err for details.

  // Therefore, do *NOT* use !os.IsNotExist(err) to test for file existence
}

説明

os.Stat 関数は、ファイルの属性を表す FileInfo オブジェクトを返します。ファイルが存在しない場合はエラーを返します。 errors.Is 関数を使用してエラーを os.ErrNotExist と比較すると、ファイルが存在しないエラーと他のエラーを区別できます。

注意

予期しない動作を引き起こす可能性があるため、ファイルの存在をテストするための os.IsNotExist の否定 (例: !os.IsNotExist(err))場合によっては。

以上がGo でファイルの存在を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。