查找文件不匹配模式

问题描述:

为了找到所有.txt文件,我们可以利用这一点:查找文件不匹配模式

Directory.GetFiles(@"c:\","*.txt") 

有没有办法找到不匹配模式(前所有文件:没有扩展名的文件。文本)。

您可以尝试LINQ:

var files = Directory.EnumerateFiles("C:\\").Where(x => !x.EndsWith(".txt")).ToList(); 
+1

+1'EnumerateFiles'。 –

没有内建的方法为搜索模式。但是你可以使用Linq:

var files = Directory.EnumerateFiles(dir) 
    .Where(fn => !Path.GetExtension(fn).Equals(".txt", StringComparison.OrdinalIgnoreCase)) 
    .ToArray(); 

请注意,我用EnumerateFiles代替GetFiles。后者将al文件加载到内存中,然后才能开始处理,使用EnumerateFiles,可以在返回整个集合之前开始枚举和筛选名称集合。

+0

为什么是'Equals'? –

+0

@HamletHakobyan这是使用'OrdinalIgnoreCase' –

+0

@SriramSakthivel好的,但我的问题是关于Tim已经修复的另一个案例。 –

使用LINQ

var files = Directory.GetFiles(dir) 
    .Where(file=> !file.EndsWith(".txt").ToList();