Как проверить, существует ли файл в папке? - PullRequest
91 голосов
/ 12 сентября 2011

Мне нужно проверить, существует ли файл xml в папке.

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

Это лучший способ проверить наличие файла в папке.

Мне нужно проверить, присутствует ли только XML-файл

Ответы [ 9 ]

171 голосов
/ 12 сентября 2011

Это способ проверить, существуют ли какие-либо XML-файлы в этой папке, да.

Чтобы проверить наличие определенных файлов, используйте File.Exists(path), который возвратит логическое значение, указывающее, что нужно.файл в path существует.

30 голосов
/ 12 сентября 2011

Использование 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.");
29 голосов
/ 12 сентября 2011

Чтобы проверить, существует файл или нет, вы можете использовать

System.IO.File.Exists(path)
8 голосов
/ 02 сентября 2014

Таким образом, мы можем проверить наличие файла в определенной папке:

 string curFile = @"c:\temp\test.txt";  //Your path
 Console.WriteLine(File.Exists(curFile) ? "File exists." : "File does not exist.");
7 голосов
/ 25 февраля 2016

Поскольку никто не сказал, как проверить, существует ли файл И получить текущую папку, в которой находится исполняемый файл (рабочий каталог) :

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

@"\YourFile.txt" не чувствителен к регистру, это означает, что такие вещи, как @"\YoUrFiLe.txt" и @"\YourFile.TXT" или @"\yOuRfILE.tXt" интерпретируются одинаково.

2 голосов
/ 08 марта 2016

Его можно улучшить следующим образом:

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 голос
/ 20 августа 2018
if (File.Exists(localUploadDirectory + "/" + fileName))
{                        
    `Your code here`
}
0 голосов
/ 27 октября 2018

Это проснулось для меня.

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;
             }
0 голосов
/ 06 сентября 2017

Это помогло мне:

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