2013-03-12 41 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); 
相关问题