C# 将文件复制到其他文件夹
我在一个文件夹中有一个文件,每次用户对该文件进行更改时,我都想用不同的名称将其备份到不同的文件夹中 这就是我到目前为止所拥有的,只是不确定如何更改 备份文件类似于backup1.txt、backup2.txt等C# 将文件复制到其他文件夹,c#,C#,我在一个文件夹中有一个文件,每次用户对该文件进行更改时,我都想用不同的名称将其备份到不同的文件夹中 这就是我到目前为止所拥有的,只是不确定如何更改 备份文件类似于backup1.txt、backup2.txt等 try { System.IO.File.Copy(ppFileName,MoveFilesForBackUp); } catch (Exception ex) { Console.WriteLine(ex.Message); } 您需要修改目标文件名MoveFiles
try
{
System.IO.File.Copy(ppFileName,MoveFilesForBackUp);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
您需要修改目标文件名
MoveFilesForBackUp
,以使用某种顺序编号
因此,首先您需要编写一个函数,该函数可以为您生成顺序备份号
然后,每次要执行备份时,都需要找出下一个顺序文件名应该是什么。然后尝试将文件复制到新名称,如果复制失败,并出现IOException
指定该文件已存在,则继续使用下一个顺序名称,以此类推,直到成功为止
天真地说,人们会认为找到下一个顺序名称应该保证复制
正常工作,但在搜索和实际调用复制之间,用户或其他程序可能已经创建了一个具有该名称的文件(竞争条件),以便更健壮,您需要能够处理错误并尝试其他名称。尝试以下名称:
string path = @"F:\\EE";
var nextFileName = "backup"
+ (Convert.ToInt32(Directory.GetFiles(path, "*.txt")
.Select(p => Path.GetFileNameWithoutExtension(p)
.Replace("backup", "")).Last())
+ 1)
.ToString()
+ ".txt";
谢谢
我刚刚添加了这行代码,当它复制它时,重命名为它被复制的日期和时间
System.IO.File.Copy(ppFileName, Properties.Settings.Default.MoveFilesForBackUp + DateTime.Now.ToString("yyyy-MM-dd HHmmtt")+".pptx");