查找目录中不存在的文件名

时间:2013-03-12 05:50:30

标签: c#

我列出List<string>中的文件名(而不是路径)。我必须找到目录中不存在的List<string>个文件。

现在我正在逐个迭代这些文件,并将它们中的每一个都检查到该文件夹​​中的所有文件。

是否有任何LINQ方式可以实现相同的目标?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

根据列表中的名称数量(以及目标中的文件数量),您可能会发现迭代方法仍然是效率最高的(但有一些LINQ增强功能):

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