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

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

Goの標準ライブラリには、ファイルが存在するかどうかをチェックすることだけを目的とした関数はありません(Pythonのos.path.exists)。それを慣用的に行う方法は何ですか?

ベストアンサー1

ファイルが存在しないかどうかを確認するには、Python の と同等ですif not os.path.exists(filename):

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

ファイルが存在するかどうかを確認するには、Python の と同等ですif os.path.exists(filename):

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


}

おすすめ記事