2013-03-12 56 views
3

我有名單,如果文件名稱(不是路徑)在List<string>。我必須找到不存在於目錄中的文件的List<string>查找文件名不存在的目錄中

現在我正在逐個迭代文件,並檢查它們中的每一個文件夾中的所有文件。

是否有任何LINQ的方式同一件事?

回答

0

取決於你有多少名的列表中有(有多少文件在目的地),你可能會發現,迭代的方法仍然是最有效的(但有一些LINQ增強功能):

var missingFiles = names.Where(x => !File.Exists(x)); 
5

您可以使用Enumerable.Except像:

List<string> compareList = new List<string>(); 
//.... items in the list 

DirectoryInfo di = new DirectoryInfo("C:\\"); 
var fileArray = di.GetFiles().Select(r => r.Name).ToArray(); 

var filesNotPresent = compareList.Except(fileArray); 
相關問題