2013-10-11 127 views
0

爲了找到所有.txt文件,我們可以利用這一點:查找文件不匹配模式

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

有沒有辦法找到不匹配模式(前所有文件:沒有擴展名的文件。文本)。

回答

2

您可以嘗試LINQ:

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

+1'EnumerateFiles'。 –

2

沒有內建的方法爲搜索模式。但是你可以使用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已經修復的另一個案例。 –

0

使用LINQ

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