Goコードでファイル./conf/app.ini
の存在を確認したいのですが、それを行う良い方法が見つかりません。
JavaのFileのメソッドpublic boolean exists()
があることを知っています。これは、ファイルまたはディレクトリが存在する場合にtrueを返します。
しかし、Goでこれを行うにはどうすればよいでしょうか?
// exists returns whether the given file or directory exists
func exists(path string) (bool, error) {
_, err := os.Stat(path)
if err == nil { return true, nil }
if os.IsNotExist(err) { return false, nil }
return true, err
}
エラー処理を追加するために編集されました。
これを使用できます:
if _, err := os.Stat("./conf/app.ini"); err != nil {
if os.IsNotExist(err) {
// file does not exist
} else {
// other error
}
}
私の質問はすぐに検索できると思って数分間見回したので、もっと参考になりました。
パスがGoの既存のディレクトリを表しているかどうかを確認するにはどうすればよいですか?
これは私の検索結果で最も人気のある答えでしたが、ここと他の場所でのソリューションは存在チェックのみを提供します。 path
が既存のディレクトリを表すかどうかを確認するには、簡単にできることがわかりました。
path := GetSomePath();
if stat, err := os.Stat(path); err == nil && stat.IsDir() {
// path is a directory
}
私の問題の一部は、path/filepath
パッケージにisDir()関数が含まれることを期待していたことです。
ファイルが存在するかどうかを確認する簡単な方法:
if _, err := os.Stat("/path/to/whatever"); os.IsNotExist(err) {
// path/to/whatever does not exist
}
if _, err := os.Stat("/path/to/whatever"); err == nil {
// path/to/whatever exists
}
ソース: