C#/ .NETにファイルが存在するかどうかを確認する方法は?


186

C#でファイルへのパスを含む文字列をテストして、そのファイルの存在を確認します(-ePerlやos.path.exists()Pythonのテストのようなもの)。

回答:


303

使用する:

File.Exists(path)

MSDN:http : //msdn.microsoft.com/en-us/library/system.io.file.exists.aspx

編集:System.IO内


14
File.Exists(path)は、ファイルが存在する場合でもfalseを返しますが、呼び出し元がファイルを読み取るためのアクセス許可を持っていません。このような状況を処理し、呼び出し元が読み取れない場合でもファイルが存在するかどうかを確認する別の方法はありますか?
ADTC 2012年

3
@ADTC:セキュリティの観点からは、そのように機能するのは普通に聞こえますが、開発者の観点からは、事態がより複雑になる可能性があります。その場合、ファイルを作成しようとすると例外が発生しますか?
user276648 2013年

2
@ADTCはつまずき、ドロップボックスディレクトリについて言及するかもしれません。これらは、作成または書き込み権限はあるが読み取り権限はない場所に設定できます。この質問に直接関連しているわけではありません。考えているほど奇妙ではありません。
ウッコ2013年

1
注:パスの大文字と小文字が実際にG:にあるものと完全に一致しない場合、File.ExistsはGoogleドライブファイルストリームG:ドライブでFalseを返します。通常、物理ドライブの筐体は問題ではないので、Existsメソッドに何か問題があるのでしょうか。
CTZStef 2017

1
@CTZStefは、フレームワークメソッドではなく、Googleの仮想ドライブの癖です。
Eugene Mayevski 'Callback



4

入力として完全なパスを指定します。相対パスは避けてください。

 return File.Exists(FinalPath);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.