файл існує за зразком імені файлу


78

Я використовую:

File.Exists(filepath)

Що я хотів би зробити, це замінити це на зразок, оскільки перша частина імені файлу змінюється.

Наприклад: файл може бути

01_peach.xml
02_peach.xml
03_peach.xml

Як я можу перевірити, чи існує файл на основі якоїсь моделі пошуку?

Відповіді:


120

Ви можете скласти список каталогів зі зразком, щоб перевірити наявність файлів

string[] files = System.IO.Directory.GetFiles(path, "*_peach.xml", System.IO.SearchOption.TopDirectoryOnly);
if (files.Length > 0)
{
    //file exist
}

68

Якщо ви використовуєте .net framework 4 або вище, ви можете використовувати Directory.EnumerateFiles

bool exist = Directory.EnumerateFiles(path, "*_peach.xml").Any();

Це може бути ефективніше, ніж використання, Directory.GetFilesоскільки ви уникаєте ітерації по всьому списку файлів.


Ваша версія коду робить те саме, але прихована. Неможливо отримати всі файли, що відповідають шаблону, просто з нічого.
Костадін

4
@Kostadin: пропустив відповідь на це раніше ... він не хоче, щоб усі файли відповідали шаблону, він хоче знати, чи є БУДЬ-ЯК
Клаудіо Реді

Якщо ви застрягли в версії 3.5, ви можете використовувати bool Існує = Directory.GetFiles (шлях, "* _peach.xml"). Any ();
Джо Джонстон,

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