查找文件不匹配模式
为了找到所有.txt文件,我们可以利用这一点:查找文件不匹配模式
Directory.GetFiles(@"c:\","*.txt")
有没有办法找到不匹配模式(前所有文件:没有扩展名的文件。文本)。
您可以尝试LINQ:
var files = Directory.EnumerateFiles("C:\\").Where(x => !x.EndsWith(".txt")).ToList();
没有内建的方法为搜索模式。但是你可以使用Linq:
var files = Directory.EnumerateFiles(dir)
.Where(fn => !Path.GetExtension(fn).Equals(".txt", StringComparison.OrdinalIgnoreCase))
.ToArray();
请注意,我用EnumerateFiles
代替GetFiles
。后者将al文件加载到内存中,然后才能开始处理,使用EnumerateFiles
,可以在返回整个集合之前开始枚举和筛选名称集合。
为什么是'Equals'? –
@HamletHakobyan这是使用'OrdinalIgnoreCase' –
@SriramSakthivel好的,但我的问题是关于Tim已经修复的另一个案例。 –
使用LINQ
var files = Directory.GetFiles(dir)
.Where(file=> !file.EndsWith(".txt").ToList();
+1'EnumerateFiles'。 –