'File.Copy'不会覆盖文件

时间:2010-10-27 16:16:16

标签: c# .net

使用以下代码,我试图覆盖文件(如果存在)。 Currenly它抛出IOException。我该如何解决这个问题?

File.Copy(filePath, newPath);

7 个答案:

答案 0 :(得分:116)

使用

File.Copy(filePath, newPath, true);

第三个参数是覆盖,因此如果将其设置为true,将覆盖目标文件。

请参阅:File.Copy in the MSDN

答案 1 :(得分:16)

此函数有一个包含第三个参数的重载。此参数称为“覆盖”。如果您传递true,只要该文件不是只读文件,它就会被覆盖。

答案 2 :(得分:6)

然后拨打the overload

File.Copy(filePath, newPath, true);

答案 3 :(得分:4)

然后使用其他File.Copy(string, string, boolean)。第三个参数指示是否覆盖目标文件(如果要覆盖,则为true,否则为false

但你有什么期望?如果该函数设计为在目标文件存在时抛出,则需要找到解决该问题的方法。所以:

  1. 在文档或智能感知中搜索满足您要求的重载。
  2. 除此之外,在File.Copy(string, string)周围创建一个包装器,如果它存在,则删除目标文件。

答案 4 :(得分:4)

MSDN开始,您可以:

File.Copy(filePath, newPath, true);

答案 5 :(得分:2)

File.Copy(filePath, newPath, bool overwrite)

做到了。

答案 6 :(得分:1)

这可以帮到你:

我使用它并且它有效,

File.Copy(src,des,true); //(string source, string destination, bool overwrite)

参考(MSDN): File.Copy Method (String, String, Boolean)