簡體   English   中英

重命名現有文件名

[英]Rename existing file name

我有以下代碼將文件復制到特定文件夾,然后重命名它。 當具有該名稱的文件已存在時,我收到以下異常:

Cannot create a file when that file already exists

有沒有辦法覆蓋文件並重命名? 或者我應該刪除舊的然后更改名稱?

這是我的代碼:

 File.Copy(FileLocation, NewFileLocation, true);
 //Rename:
 File.Move(Path.Combine(NewFileLocation, fileName), Path.Combine(NewFileLocation, "File.txt"));               

盡量只使用:

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

System.IO.File.Move("oldfilename", "newfilename");

一個簡單的選項是刪除文件(如果存在):

if (System.IO.File.Exists(newFile)) System.IO.File.Delete(newFile);
System.IO.File.Move(oldFile, newFile);

這樣的事情應該有效。

你是對的,如果/當文件名已存在時, File.Move將拋出IOException 因此,為了克服這一點,您可以在移動前進行快速檢查。 例如

if (File.Exists(destinationFilename))
{
    File.Delete(destinationFilename);
}
File.Move(sourceFilename, destinationFilename);

您應該使用File.Exists而不是讓Exception拋出。 然后,您可以處理文件是否應該被覆蓋或重命名。

步驟1:作為第一步,在復制文件之前識別文件是否存在。
使用File.Exists()方法

步驟2:如果文件已存在同名,則使用File.Delete()方法刪除現有文件

第3步:現在使用File.Copy()方法將文件復制到新位置。

第4步:重命名新復制的文件。

嘗試這個:

string NewFilePath = Path.Combine(NewFileLocation, fileName);
if(File.Exists(NewFilePath))
{ 
File.Delete(NewFilePath);
}

//Now copy the file first
File.Copy(FileLocation, NewFileLocation, true);

//Now Rename the File
File.Move(NewFilePath, Path.Combine(NewFileLocation, "File.txt")); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM