LoginSignup
4
2

【Go言語】指定したパスがファイルなのかディレクトリなのかを判別する関数

Last updated at Posted at 2024-03-13

ファイルの存在確認

func IsFile(path string) bool {
    info, err := os.Stat(path)
    if err != nil {
        return false
    }
    return !info.IsDir()
}
  1. os.Stat(path)を使って、指定したパスの情報を取得
  2. エラーが発生した場合(err != nil)、指定したパスにファイルまたはディレクトリが存在しないため、falseを返却
  3. !info.IsDir()trueの場合、指定したパスはファイルであるため、trueを返却

ディレクトリの存在確認

func IsDir(path string) bool {
    info, err := os.Stat(path)
    if err != nil {
        return false
    }
    return info.IsDir()
}
  1. os.Stat(path)を使って、指定したパスの情報を取得
  2. エラーが発生した場合(err != nil)、指定したパスにファイルまたはディレクトリが存在しないため、falseを返却
  3. info.IsDir()trueの場合、指定したパスはディレクトリであるため、trueを返却

パスの指定方法

両関数とも、絶対パス・相対パス、どちらの指定方法でもOKです

参考

存在確認部分の正当性に関しては、下記の記事を参考にしました。

info, err := os.Stat(path)
if err != nil {
    return false
}

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2