Вы знаете, что в Linux это легко, но я не могу просто понять, как это сделать на С# в Windows. Я хочу удалить все файлы, соответствующие шаблону f*.txt
. Как мне это сделать?
Удаление нескольких файлов с помощью шаблона
Ответ 1
Вы можете использовать функцию DirectoryInfo.EnumerateFiles
:
var dir = new DirectoryInfo(directoryPath);
foreach (var file in dir.EnumerateFiles("f*.txt")) {
file.Delete();
}
(Конечно, вы, вероятно, захотите добавить обработку ошибок.)
Ответ 2
Я знаю, что это уже ответили и с хорошим ответом, но есть альтернатива в .NET 4.0 и выше. Используйте Directory.EnumerateFiles()
, таким образом:
foreach (string f in Directory.EnumerateFiles(myDirectory,"f*.txt"))
{
File.Delete(f);
}
Недостатком DirectoryInfo.GetFiles()
является то, что он возвращает список файлов, что составляет 99,9% от времени. Недостатком является то, что папка содержит десятки тысяч файлов (что редко), тогда она становится очень медленной, и перечисление через соответствующие файлы происходит намного быстрее.
Ответ 3
Вы можете использовать метод Directory.GetFiles с перегрузкой подстановки. Это вернет все имена файлов, которые соответствуют вашему шаблону. Вы можете удалить эти файлы.
Ответ 4
Я ценю, что эта тема уже немного устарела, но если вы хотите использовать linq, тогда
Directory.GetFiles("f:\\TestData", "*.zip", SearchOption.TopDirectoryOnly).ToList().ForEach(f => File.Delete(f));