[英]fastest way to search and delete files inside a directory
我有一个类数组,其中一个成员是文件的完整路径。 我需要从目录中删除所有那些未包含在数组中的文件。 通常,我使用传统的比较和删除方法。 我需要知道是否有任何快速的方法来实现这一目标。 我听说可以使用Linq完成,但我对linq没有任何了解。
我的类结构如下所示。
Class ImageDetails
{
public string Title;
public Boolean CanShow;
public String PathToFile;
}
我有一个ImageDetails数组。 PathToFile包含完整路径
}
您可以使用Except()来处理:
var filesToDelete = Directory.GetFiles(Path.GetDirectoryName(yourClass.FilePath)).Except(yourClass.TheArray);
你为什么需要比较? 如果您有完整的文件名,那么
File.Delete(fileName);
是你所需要的全部。 文件IO可能是最慢的部分,所以我认为Linq不会对性能产生太大影响。
如果该文件可能不存在,请先检查该文件:
if (File.Exists(fileName))
{
File.Delete(fileName);
}
编辑:我看到你的意思是你要删除文件,如果它不在数组中。 我读了你的问题意味着该目录未包含在数组中。
尽管如此,实际的文件删除可能是最慢的部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.