0
我有一個相對路徑的字符串列表。我也有一個包含這些文件的根路徑的字符串。現在我刪除它們像這樣:刪除數百萬個文件的最快方法
foreach (var rawDocumentPath in documents.Select(x => x.RawDocumentPath))
{
if (string.IsNullOrEmpty(rawDocumentPath))
{
continue;
}
string fileName = Path.Combine(storagePath, rawDocumentPath);
File.Delete(fileName);
}
的問題是,我打電話Path.Combine
每個文件,它是夠慢。 如何加快此代碼?我無法刪除整個文件夾,我無法更改當前目錄(因爲它影響整個程序)...
我需要類似的東西,它可以快速刪除指定目錄中的幾個文件。
看不到任何會減慢你的代碼,具有文件操作的瓶頸在正常情況下始終是I/O操作。您可能會嘗試在此處使用多線程,例如documents.AsParallel()。ForAll() –
@MichaelSander我知道,但磁盤可以組織批量刪除,你知道,命令隊列等。 –
如果你知道它是「全部」的東西,你可以做一個「* .doc」類型的方法,但是當你需要做特定的時候..你更有限 – BugFinder