你知道在linux中这很简单但我不能只在Windows上用C#来理解它.我想删除所有匹配通配符的文件f*.txt.我该怎么做呢?
Ry-*_*Ry- 129
你可以使用这个DirectoryInfo.EnumerateFiles功能:
var dir = new DirectoryInfo(directoryPath);
foreach (var file in dir.EnumerateFiles("f*.txt")) {
file.Delete();
}
Run Code Online (Sandbox Code Playgroud)
(当然,您可能希望添加错误处理.)
Bri*_*yer 49
我知道这已经得到了回答并得到了一个很好的答案,但在.NET 4.0及更高版本中还有另一种选择.使用Directory.EnumerateFiles(),因此:
foreach (string f in Directory.EnumerateFiles(myDirectory,"f*.txt"))
{
File.Delete(f);
}
Run Code Online (Sandbox Code Playgroud)
缺点DirectoryInfo.GetFiles()是它返回一个文件列表 - 其中99.9%的时间是很好的.缺点是如果文件夹包含数万个文件(这是罕见的),那么它变得非常慢,并且通过匹配文件进行枚举要快得多.
我很欣赏这个线程现在有点旧了,但是如果你想使用 linq 那么
Directory.GetFiles("f:\\TestData", "*.zip", SearchOption.TopDirectoryOnly).ToList().ForEach(File.Delete);
Run Code Online (Sandbox Code Playgroud)