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