我有一個項目作爲計劃任務運行,每5分鐘。除此之外,該項目通過數百個圖像運行,並以這種方式將它們複製到網絡驅動器中。File.Copy()性能如果文件可能已經存在
foreach (string file in Files)
{
string Control = Path.GetFileNameWithoutExtension(file);
File.SetAttributes(file, FileAttributes.Normal);
try
{
File.Copy(file, destinationFolder + "\\" + Control + @".pdf", false);
}
catch (Exception err)
{
Console.Writeline(err.ToString());
}
}
「假」的說法當然告訴它不覆蓋文件,如果它已經存在。
這是比第一次檢查文件是否已經存在,然後只在文件不存在時才複製更快/更好的做法嗎? (見下)
foreach (string file in Files)
{
if (File.Exists(destinationFolder + "\\" + ControlNumber + ".pdf") == false)
{
File.SetAttributes(file, FileAttributes.Normal);
File.Copy(file, destinationFolder + "\\" + ControlNumber + @".pdf");
}
}
我的直覺告訴我,第一個是更好的方法。不過,我對編程相對比較陌生,並且很想知道哪個更好,更快,更廣泛地被接受等等。
謝謝!
編輯: 它可能會或可能不會讓你知道,遠程驅動器/文件夾,我複製到包含圖像數據(百萬計的圖像)的4TB
http://ericlippert.com/2012/12/17/performance-rant/ –
如果將所有現有文件的路徑寫入文本或xml文件中,然後檢查是否更好首先列出,如果它不在該列表中,則複製到目錄中,然後將新文件添加到列表中?只是一個想法:) –
你是如何創建'文件'集合? –