覆盖文件的最快方法是什么



我知道这听起来很琐碎,但我有一个非常具体的原因要问。

我正在通过一个非常糟糕的网络到达印度孟买。如果我是本地人,我会简单地运行以下代码:

                if (File.Exists(f2))
                {
                    File.Delete(f2);
                }
                File.Copy(f1, f2);

当然,我必须先测试文件是否存在,因为我不能只在现有文件的顶部复制文件。C#对此颇有怨言。问题来了。。"先测试它是否存在"仅需5秒。然后删除大约需要3分钟。最后,复制大约需要15分钟。对于一个15秒的副本,它最终需要23秒。

这增加了8秒,或者大约50%的开销,只是为了防止C#错误。

有没有办法说

File.Copy(f1, f2, Just_do_it_damnit)

没有所有"它存在吗"的开销?

是的,您可以使用File.Copy(f1, f2, true)来覆盖目标文件。

当然,使用这个有什么问题?

File.Copy(f1,f2,true);

您的意思是

File.Copy(f1, f2, True)

请参阅http://msdn.microsoft.com/en-us/library/9706cfs5.aspx

答案就在问题中。

File.Copy(f1, f2, true);

请参阅微软的页面:

http://msdn.microsoft.com/en-us/library/aa328774%28v=VS.71%29.aspx

File.Copy有第三个参数——一个布尔标志,用于指定如果文件已经存在,是否应该覆盖。所以我认为File.Copy(f1,f2,true),所以你想做什么就做什么。

http://msdn.microsoft.com/en-us/library/9706cfs5(v=VS.80).aspx

相关内容

  • 没有找到相关文章