将文件复制到其他文件夹

时间:2014-05-22 11:56:10

标签: c#

我在文件夹中有一个文件,每当用户对该文件进行更改时,我想将其备份到每次具有不同名称的不同文件夹中。

这是我到目前为止,只是不知道如何更改名称 备份文件如backup1.txt,backup2.txt等等

try
{
    System.IO.File.Copy(ppFileName,MoveFilesForBackUp);
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

3 个答案:

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