フォルダにファイルが存在するかどうかを確認するにはどうすればよいですか?


112

フォルダーにxmlファイルが存在するかどうかを確認する必要があります。

DirectoryInfo di = new DirectoryInfo(ProcessingDirectory);
FileInfo[] TXTFiles = di.GetFiles("*.xml");
if (TXTFiles.Length == 0)
{
    log.Info("no files present")
}

これは、フォルダにファイルが存在することを確認するための最良の方法ですか?

xmlファイルだけが存在することを確認する必要があります


2
すべてのxmlファイルを探していますか、それとも特定の名前のファイルを探していますか?
Piotr Auguscik


5
あなたが必要とするものは正義でDirectory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").Any()あり、それはあなたが得ることができる最速です。
シャドウウィザードはあなたにぴったりです

回答:


198

これは、そのフォルダーにXMLファイルが存在するかどうかを確認する方法です。

特定のファイルを確認するには File.Exists(path)、を。これは、にファイルがpath存在示すブール値を返します。


4
FileInfo.Existsプロパティを使用することもできます
VMAtm

10
ユーザーがファイルを読み取る権限を持っていない場合、この回答はfalseを返すことに注意してください。そのため、ファイルがフォルダに存在する場合、checkinfだけではありません。DirectoryInfo.GetFiles()を使用して結果を列挙したい場合があります。
ogborstad 2015

35

FileInfo.Existsプロパティを使用:

DirectoryInfo di = new DirectoryInfo(ProcessingDirectory);
FileInfo[] TXTFiles = di.GetFiles("*.xml");
if (TXTFiles.Length == 0)
{
    log.Info("no files present")
}
foreach (var fi in TXTFiles)
    log.Info(fi.Exists);

またはFile.Exists方法:

string curFile = @"c:\temp\test.txt";
Console.WriteLine(File.Exists(curFile) ? "File exists." : "File does not exist.");

5
DirectoryInfoクラスとFileInfoクラスは素晴らしいです。これらは、これらのファイルシステム構成を処理するための多くのメソッドを提供し、UIにバインドするときに役立つプロパティで情報を公開し、シリアル化可能であるため、構成で使用できます。

29

ファイルが存在するかどうかを確認するには、使用できます

System.IO.File.Exists(path)

8

このようにして、特定のフォルダー内の既存のファイルを確認できます。

 string curFile = @"c:\temp\test.txt";  //Your path
 Console.WriteLine(File.Exists(curFile) ? "File exists." : "File does not exist.");

8

誰もファイルが存在するかどうかを確認する方法を言わなかったので、実行可能に(作業ディレクトリ)にある現在のフォルダを取得します

if (File.Exists(Directory.GetCurrentDirectory() + @"\YourFile.txt")) {
                //do stuff
}

@"\YourFile.txt"手段は次のように詰め込むことは、大文字と小文字を区別しない@"\YoUrFiLe.txt"@"\YourFile.TXT"、または@"\yOuRfILE.tXt"同じ解釈されます。


3

次のように改善できます:

if(Directory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").ToList<string>().Count == 0)
    log.Info("no files present")

または:

log.Info(Directory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").ToList<string>().Count + " file(s) present");

1
if (File.Exists(localUploadDirectory + "/" + fileName))
{                        
    `Your code here`
}

2
このコードは問題を解決する場合としない場合がありますが、適切な答えを得るには、このコードの機能に関する説明が常に必要です。また、あなたの答えが新しいものを追加するようには見えないことにも注意してください。また、コードサンプルを適切にフォーマットし、localUploadDirectoryそれが何であるか、またはなぜそれが参照されているのかを説明する必要があります。
BDL

0

これは私を助けました:

bool fileExists = (System.IO.File.Exists(filePath) ? true : false);

4
(System.IO.File.Exists(filePath) ? true : false);冗長でSystem.IO.File.Exists(filePath);十分です。
Naveen Niraula

2
実際にはAdritaのコードと同じように、変数が何を保持する必要があるかが明らかになるため、学生プログラムにロジックを適用する方法の優れた例でもあります。それをレッスンに取り入れます。合理化が必要なコードでは、メンテナンスとデバッグのオーバーヘッドが最も大きくなる場合があります
ScaryMinds

0

これで目が覚めました。

file_browse_path=C:\Users\Gunjan\Desktop\New folder\100x25Barcode.prn
  String path = @"" + file_browse_path.Text;

  if (!File.Exists(path))
             {
      MessageBox.Show("File not exits. Please enter valid path for the file.");
                return;
             }
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.