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