C#将文件复制到另一个名称不同的位置

如果满足某些条件,我想从一个目录复制文件到另一个没有删除原始文件。 我也想把新文件的名字设置成一个特定的值。

我正在使用C#并使用FileInfo类。 虽然它有CopyTo方法。 它不给我select设置文件名。 而MoveTo方法,同时允许我重命名文件,删除原始位置的文件。

什么是最好的方式去做这件事?

System.IO.File.Copy(oldPathAndName, newPathAndName); 

您也可以尝试复制方法:

 File.Copy(@"c:\work\foo.txt", @"c:\data\bar.txt") 

如果您只想使用FileInfo类,请尝试此操作

  string oldPath = @"C:\MyFolder\Myfile.xyz"; string newpath = @"C:\NewFolder\"; string newFileName = "new file name"; FileInfo f1 = new FileInfo(oldPath); if(f1.Exists) { if(!Directory.Exists(newpath)) { Directory.CreateDirectory(newpath); } f1.CopyTo(string.Format("{0}{1}{2}", newpath, newFileName, f1.Extension)); } 

改用File.Copy方法

例如。

 File.Copy(@"C:\oldFile.txt", @"C:\newFile.txt"); 

你可以在newFile中调用它,并且会相应地重命名它。

一种方法是:

 File.Copy(oldFilePathWithFileName, newFilePathWithFileName); 

或者你也可以使用FileInfo.CopyTo()方法,就像这样:

 FileInfo file = new FileInfo(oldFilePathWithFileName); file.CopyTo(newFilePathWithFileName); 

例:

 File.Copy(@"c:\a.txt", @"c:\b.txt"); 

要么

 FileInfo file = new FileInfo(@"c:\a.txt"); file.CopyTo(@"c:\b.txt"); 
 StreamReader reader = new StreamReader(Oldfilepath); string fileContent = reader.ReadToEnd(); StreamWriter writer = new StreamWriter(NewFilePath); writer.Write(fileContent); 
 File.Copy(@"C:\oldFile.txt", @"C:\newFile.txt", true); 

请不要忘记覆盖以前的文件! 确保添加第三个参数,通过添加第三个参数,允许覆盖文件。 否则你可以使用try catch来处理exception。

问候,G

您可以使用System.IO.File类中的Copy方法。

您可以使用的最简单的方法是:

 System.IO.File.Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName); 

这将照顾你所要求的一切。

您可以使用File.Copy(oldFilePath,newFilePath)方法或其他方式,使用StreamReader将文件读入一个string,然后使用StreamWriter将文件写入目标位置。

您的代码可能如下所示:

 StreamReader reader = new StreamReader("C:\foo.txt"); string fileContent = reader.ReadToEnd(); StreamWriter writer = new StreamWriter("D:\bar.txt"); writer.Write(fileContent); 

您可以添加exception处理代码…