使用通配符删除多个文件

你知道,在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方法。 这将返回所有匹配你的模式的文件名。 您可以删除这些文件。