繁体   English   中英

搜索和删除目录中文件的最快方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM