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

时间:2010-10-07 12:08:11

标签: c# file-io

如果满足某些条件,我想将文件从一个目录复制到另一个目录而不删除原始文件。我还想将新文件的名称设置为特定值。

我正在使用C#并且正在使用FileInfo类。虽然它确实有CopyTo方法。它没有给我设置文件名的选项。允许我重命名文件的MoveTo方法删除原始位置的文件。

最好的方法是什么?

10 个答案:

答案 0 :(得分:103)

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

答案 1 :(得分:29)

您也可以尝试Copy方法:

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

答案 2 :(得分:9)

使用File.Copy方法

例如

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

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

答案 3 :(得分:9)

如果您只想使用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));
             }

答案 4 :(得分:4)

一种方法是:

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");

答案 5 :(得分:3)

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

请不要忘记覆盖以前的文件!确保添加第三个参数。通过添加第三个参数,您可以覆盖该文件。否则,您可以使用try catch作为例外。

此致 ģ

答案 6 :(得分:2)

StreamReader reader = new StreamReader(Oldfilepath);
string fileContent = reader.ReadToEnd();

StreamWriter writer = new StreamWriter(NewFilePath);
writer.Write(fileContent);

答案 7 :(得分:1)

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

答案 8 :(得分:1)

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

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

这将照顾您要求的一切。

答案 9 :(得分:0)

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

您的代码可能如下所示:

StreamReader reader = new StreamReader("C:\foo.txt");
string fileContent = reader.ReadToEnd();

StreamWriter writer = new StreamWriter("D:\bar.txt");
writer.Write(fileContent);

您可以添加异常处理代码...