我如何重命名一个文件使用c# ?


当前回答

// Source file to be renamed  
string sourceFile = @"C:\Temp\MaheshChand.jpg";  
// Create a FileInfo  
System.IO.FileInfo fi = new System.IO.FileInfo(sourceFile);  
// Check if file is there  
if (fi.Exists)  
{  
// Move file with a new name. Hence renamed.  
fi.MoveTo(@"C:\Temp\Mahesh.jpg");  
Console.WriteLine("File Renamed.");  
}  

其他回答

你可以将它复制为一个新文件,然后使用System.IO.File类删除旧文件:

if (File.Exists(oldName))
{
    File.Copy(oldName, newName, true);
    File.Delete(oldName);
}

我找不到适合我的方法,所以我提出了我的版本。当然,它需要输入和错误处理。

public void Rename(string filePath, string newFileName)
{
    var newFilePath = Path.Combine(Path.GetDirectoryName(filePath), newFileName + Path.GetExtension(filePath));
    System.IO.File.Move(filePath, newFilePath);
}

我遇到过一种情况,当我不得不在事件处理程序中重命名文件时,它会触发任何文件更改,包括重命名,并且要跳过永远重命名我必须重命名的文件,使用:

创建副本 移除原始的

File.Copy(fileFullPath, destFileName); // Both have the format of "D:\..\..\myFile.ext"
Thread.Sleep(100); // Wait for the OS to unfocus the file
File.Delete(fileFullPath);

Use:

using System.IO;

string oldFilePath = @"C:\OldFile.txt"; // Full path of old file
string newFilePath = @"C:\NewFile.txt"; // Full path of new file

if (File.Exists(newFilePath))
{
    File.Delete(newFilePath);
}
File.Move(oldFilePath, newFilePath);

您可以使用File。行动起来吧。