Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 查找目录中不存在的文件名_C# - Fatal编程技术网

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

C# 查找目录中不存在的文件名,c#,C#,我在列表中有列表if文件名(而不是路径)。我必须找到目录中不存在的文件的列表 现在我正在一个接一个地迭代文件,并将每个文件检查到文件夹中的所有文件 有什么方法可以达到同样的效果吗?您可以使用以下方法: List compareList=new List(); //.... 列表中的项目 DirectoryInfo di=新的DirectoryInfo(“C:\\”); var fileArray=di.GetFiles().Select(r=>r.Name.ToArray(); var file

我在
列表中有列表if文件名(而不是路径)。我必须找到目录中不存在的文件的
列表

现在我正在一个接一个地迭代文件,并将每个文件检查到文件夹中的所有文件

有什么方法可以达到同样的效果吗?

您可以使用以下方法:

List compareList=new List();
//.... 列表中的项目
DirectoryInfo di=新的DirectoryInfo(“C:\\”);
var fileArray=di.GetFiles().Select(r=>r.Name.ToArray();
var filesNotPresent=compareList.Except(fileArray);

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

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);
var missingFiles = names.Where(x => !File.Exists(x));