Як перевірити, чи існує файл у папці?


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()і це найшвидше, що ви можете отримати.
Shadow Wizard - це вухо для вас

Відповіді:


198

Це спосіб перевірити, чи існують якісь XML-файли у цій папці, так.

Для перевірки використання конкретних файлів File.Exists(path), що поверне булеве значення із зазначенням того, наскільки файл pathіснує.


4
Ви також можете скористатися властивістю
FileInfo.Exists

10
Ні, що ця відповідь повертає помилкову, якщо користувач не має дозволу читати файл. Отже, це більше, ніж просто перевірити, чи файл існує в папці. Ви можете скористатися DirectoryInfo.GetFiles () та перерахувати результат.
ogborstad

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 є приголомшливими. Вони пропонують безліч методів поводження з цими конструкціями файлової системи, розкривають інформацію у властивостях, корисних під час прив'язки до інтерфейсу користувача, і їх можна серіалізувати, тому ви можете використовувати їх у конфігураціях.

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;
             }
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.