如果满足某些条件,我想将文件从一个目录复制到另一个目录而不删除原始文件。我还想将新文件的名称设置为特定值。
我正在使用C#并且正在使用FileInfo类。虽然它确实有CopyTo方法。它没有给我设置文件名的选项。允许我重命名文件的MoveTo方法删除原始位置的文件。
最好的方法是什么?
答案 0 :(得分:103)
System.IO.File.Copy(oldPathAndName, newPathAndName);
答案 1 :(得分:29)
您也可以尝试Copy方法:
File.Copy(@"c:\work\foo.txt", @"c:\data\bar.txt")
答案 2 :(得分:9)
答案 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);
您可以添加异常处理代码...