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处理代码…