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

时间:2011-06-24 13:45:52

标签: c# file copy

我知道这听起来很琐碎,但我有一个非常具体的理由要求。

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

                if (File.Exists(f2))
                {
                    File.Delete(f2);
                }

                File.Copy(f1, f2);

当然,我必须先测试文件是否存在,因为我不能只将文件复制到现有文件的顶部。 C#对此抱怨。这是问题..“测试它是否存在第一个”仅需5秒。然后删除大约需要3.然后,副本大约需要15个。对于15秒的副本,它最终需要23秒。

为了防止出现C#错误,增加了8秒,即大约50%的开销。

有什么方法可以说

File.Copy(f1, f2, Just_do_it_damnit)

...没有所有“它存在”的开销吗?

5 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:3)

当然,使用它有什么问题?

File.Copy(f1,f2,true);

答案 2 :(得分:3)

你的意思是

File.Copy(f1, f2, True)

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

答案 3 :(得分:2)

答案就在问题中。

File.Copy(f1, f2, true);

请参阅Microsoft的相关页面:

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

答案 4 :(得分:0)

File.Copy有第三个参数 - 一个布尔标志,它指定如果文件已存在则是否应该覆盖。所以我认为File.Copy(f1,f2,true)也可以做你想要的。

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