我有以下代码将文件复制到特定文件夹,然后重命名它.当具有该名称的文件已存在时,我收到以下异常:
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)
一个简单的选项是删除文件(如果存在):
if (System.IO.File.Exists(newFile)) System.IO.File.Delete(newFile);
System.IO.File.Move(oldFile, newFile);
Run Code Online (Sandbox Code Playgroud)
这样的事情应该有效.
你是对的,File.Move
会抛出一个IOException
if/when文件名已经存在.因此,为了克服这一点,您可以在移动前进行快速检查.例如
if (File.Exists(destinationFilename))
{
File.Delete(destinationFilename);
}
File.Move(sourceFilename, destinationFilename);
Run Code Online (Sandbox Code Playgroud)