.NET TIPS

ファイルやディレクトリの存在を確認するには?

デジタルアドバンテージ
2004/09/17

 ファイルやディレクトリがすでに存在するかどうかを調べるには、ファイルについてはFileクラス(System.IO名前空間)のExistsメソッド、ディレクトリについてはDirectoryクラス(System.IO名前空間)のExistsメソッドを使用する。

 それぞれのExistsメソッドは静的なメソッドであるため、次のようにして直接呼び出して使用できる。パラメータにはファイルやディレクトリの絶対パスあるいは相対パスを文字列で指定する。

if (File.Exists(filePath)) {
  // filePathのファイルは存在する
} else {
  // filePathのファイルは存在しない
}

if (Directory.Exists(dirPath)) {
  // dirPathのディレクトリは存在する
} else {
  // dirPathのディレクトリは存在しない
}
File.ExistsメソッドとDirectory.Existsメソッドの記述例(C#)
 
If File.Exists(filePath) Then
  ' filePathのファイルは存在する
Else
  ' filePathのファイルは存在しない
End If

If Directory.Exists(dirPath) Then
  ' dirPathのディレクトリは存在する
Else
  ' dirPathのディレクトリは存在しない
End If
File.ExistsメソッドとDirectory.Existsメソッドの記述例(VB.NET)

 各Existsメソッドは、指定されたパスが実際に存在しなくてもFalseを返すだけなので、ファイルやディレクトリを新規作成したりオープンしたりする前にその存在を確認することで、無用な例外の発生を避けることができる。

 また、File.ExistsメソッドとDirectory.Existsメソッドを組み合わせれば、与えられたパスがファイルかディレクトリか(あるいは存在しないか)の判別が可能である。

 なお、Directory.Existsメソッドのパラメータに指定するディレクトリへのパス文字列は、文字列の最後が「\」であってもよい。実際には、パラメータが「\」で終わっていない場合には「\」が付加されて処理されることになる。このため、例えば「C:」を指定した場合、それは「C:\」として扱われる(蛇足だが、「C」のみを指定した場合には、カレント・ディレクトリにある「C」という名前のディレクトリという意味となる)。End of Article

カテゴリ:クラス・ライブラリ 処理対象:ディレクトリ&ファイル
使用ライブラリ:Fileクラス(System.IO名前空間)
使用ライブラリ:Directoryクラス(System.IO名前空間)
 
この記事と関連性の高い別の.NET TIPS
ディレクトリを作成/削除/リネーム/移動するには?
ディレクトリが空かどうかを調べるには?
ファイルやディレクトリをすべてのサブディレクトリから検索するには?
ファイルやディレクトリの一覧を取得するには?
ファイルやディレクトリの一覧を効率的に取得するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間