使用通配符删除多个文件
你知道,在Linux中很容易,但我不能理解如何在Windows上使用C#。 我想删除所有匹配通配符f*.txt
。 我该如何去做呢?
您可以使用DirectoryInfo.EnumerateFiles
函数 :
var dir = new DirectoryInfo(directoryPath); foreach (var file in dir.EnumerateFiles("f*.txt")) { file.Delete(); }
(当然,你可能想要添加error handling。)
我知道这已经得到了答案,并有一个很好的答案,但在.NET 4.0和更高版本中有一个替代scheme。 使用Directory.EnumerateFiles()
,从而:
foreach (string f in Directory.EnumerateFiles(myDirectory,"f*.txt")) { File.Delete(f); }
DirectoryInfo.GetFiles()
的缺点是它返回一个文件列表 – 99.9%的时间很长。 缺点是如果该文件夹包含数以万计的文件(这是罕见的),那么它变得非常慢,并通过匹配文件枚举要快得多。
您可以使用通配符重载的Directory.GetFiles方法。 这将返回所有匹配你的模式的文件名。 您可以删除这些文件。