创建备份文件并将其移动到目录的最快方法?

时间:2018-02-06 01:57:22

标签: c#

我想在对文件执行任何操作之前创建备份文件,然后将其移动到文件夹结构为的位置 D:\BACKUP\(Date)\(Time)

最快的方法是什么?我现在正在执行以下操作

string path = textBox1.Text;
var files = Directory.GetDirectories(path, "dtpo", SearchOption.AllDirectories)
                     .SelectMany(t => Directory.GetFiles(t, "*.txt")).ToArray();

foreach (var file in files)
{
    File.Copy(file,file+".bk",true);
    string OnlyDate=DateTime.Today.ToString("dd-MM-yyyy");
    string OnlyTime = DateTime.Now.ToString("hh-mm-ss");
    if (!Directory.Exists(@"D:\BACKUP\" + OnlyDate+"\\"+OnlyTime))
    {
        Directory.CreateDirectory(@"D:\BACKUP\" + OnlyDate+"\\"+OnlyTime);
    }

    string rootFolderPath = Path.GetFullPath(file+".bk");
    string targetPath=@"D:\BACKUP\" + OnlyDate+"\\"+OnlyTime+"\\"+Path.GetFileName(file+".bk");
    File.Move(rootFolderPath, targetPath);
    //Do the processes
}

1 个答案:

答案 0 :(得分:1)

可以绕过Directory.exists,如果有,则创建目录不会运行。另外,建议您不要进行2次io操作来编写文件。只需使用file.copy直接写入输出。