使用通配符删除多个文件
本文关键字:文件 删除 通配符 | 更新日期: 2023-09-27 18:19:51
你知道在linux中这很容易,但我不知道如何在Windows上的C#中做到这一点。我想删除所有与通配符f*.txt
匹配的文件。我该怎么做?
您可以使用DirectoryInfo.EnumerateFiles
函数:
var dir = new DirectoryInfo(directoryPath);
foreach (var file in dir.EnumerateFiles("f*.txt")) {
file.Delete();
}
(当然,您可能需要添加错误处理。)
我知道这个问题已经得到了答案,答案很好,但在.NET 4.0及更高版本中还有一个替代方案。使用Directory.EnumerateFiles()
,因此:
foreach (string f in Directory.EnumerateFiles(myDirectory,"f*.txt"))
{
File.Delete(f);
}
DirectoryInfo.GetFiles()
的缺点是它返回一个文件列表,99.9%的时间都是很好的。缺点是,如果文件夹包含数万个文件(这是罕见的),那么它会变得非常慢,并且枚举匹配的文件会快得多。
您可以将Directory.GetFiles方法与通配符重载一起使用。这将返回所有与您的模式匹配的文件名。然后可以删除这些文件。
我很感激这个线程现在有点旧了,但如果你想使用linq,那么
Directory.GetFiles("f:''TestData", "*.zip", SearchOption.TopDirectoryOnly).ToList().ForEach(File.Delete);