重命名现有文件名

use*_*179 10 .net c# file-io

我有以下代码将文件复制到特定文件夹,然后重命名它.当具有该名称的文件已存在时,我收到以下异常:

Cannot create a file when that file already exists
Run Code Online (Sandbox Code Playgroud)

有没有办法覆盖文件并重命名?或者我应该删除旧的然后更改名称?

这是我的代码:

 File.Copy(FileLocation, NewFileLocation, true);
 //Rename:
 File.Move(Path.Combine(NewFileLocation, fileName), Path.Combine(NewFileLocation, "File.txt"));               
Run Code Online (Sandbox Code Playgroud)

Onl*_*ind 25

尽量只使用:

if (File.Exists("newfilename"))
{
    System.IO.File.Delete("newfilename");
}

System.IO.File.Move("oldfilename", "newfilename");
Run Code Online (Sandbox Code Playgroud)


dre*_*w_w 9

一个简单的选项是删除文件(如果存在):

if (System.IO.File.Exists(newFile)) System.IO.File.Delete(newFile);
System.IO.File.Move(oldFile, newFile);
Run Code Online (Sandbox Code Playgroud)

这样的事情应该有效.


Bra*_*tie 5

你是对的,File.Move会抛出一个IOExceptionif/when文件名已经存在.因此,为了克服这一点,您可以在移动前进行快速检查.例如

if (File.Exists(destinationFilename))
{
    File.Delete(destinationFilename);
}
File.Move(sourceFilename, destinationFilename);
Run Code Online (Sandbox Code Playgroud)