我有一个字符串列表,它们是相对路径。我还有一个字符串,其中包含这些文件的根路径。现在我正在删除它们:
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
,而且速度很慢。
我怎样才能加快这段代码的速度?我无法删除整个文件夹,我无法更改当前目录(因为它会影响整个程序)...
我需要像类一样可以快速删除指定目录中的几个文件。
答案 0 :(得分:1)
如果你的磁盘可以处理它,平行化应该有很多帮助:
documents.AsParallel().ForAll(
document =>
{
if (!string.IsNullOrEmpty(document.RawDocumentPath))
{
string fileName = Path.Combine(storagePath, document.RawDocumentPath);
File.Delete(fileName);
}
});