簡體   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