查找与模式不匹配的文件

时间:2013-10-11 09:20:47

标签: c#

要查找所有.txt文件,我们可以使用:

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

有没有办法找到所有与模式不匹配的文件(例如:所有文件都没有扩展名.txt)。

3 个答案:

答案 0 :(得分:4)

您可以尝试LINQ:

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

答案 1 :(得分:3)

没有内置的搜索模式。但你可以使用Linq:

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

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

答案 2 :(得分:1)

使用linq

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