我有一个项目作为计划任务每 5 分钟运行一次。除其他外,该项目运行数百张图像并以这种方式将它们复制到网络驱动器:
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());
}
}
当然,“false”参数是告诉它不要覆盖已经存在的文件。
这是否比首先检查文件是否已经存在然后仅在文件不存在时复制更快/更好的做法?(见下文)
foreach (string file in Files)
{
if (File.Exists(destinationFolder + "\\" + ControlNumber + ".pdf") == false)
{
File.SetAttributes(file, FileAttributes.Normal);
File.Copy(file, destinationFolder + "\\" + ControlNumber + @".pdf");
}
}
我的直觉告诉我,第一个是更好的方法。但是,我对编程比较陌生,很想知道哪个更好、更快、更广泛接受等等。
知道我要复制到的远程驱动器/文件夹包含 4TB 的图像数据(数百万张图像)可能会有帮助,也可能没有帮助。