Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建备份文件并将其移动到目录的最快方法?_C# - Fatal编程技术网

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

C# 创建备份文件并将其移动到目录的最快方法?,c#,C#,我想在对文件执行任何操作之前创建一个备份文件,然后将其移动到文件夹结构为的位置 D:\BACKUP\(日期)\(时间) 最快的方法是什么?我目前正在做如下工作 string path = textBox1.Text; var files = Directory.GetDirectories(path, "dtpo", SearchOption.AllDirectories) .SelectMany(t => Directory.GetFiles(t

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

最快的方法是什么?我目前正在做如下工作

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
}

无法绕过Directory.exists,否则createdirectory将不会运行。还建议您不要执行2 io操作来写入文件。只需使用file.copy直接写入输出。

的可能重复项您能解释一下吗?您所说的
是什么意思?只需使用file.copy直接写入输出。
不需要bk文件。。。调用system.io.file.copy(file,Target path)是否要删除行
file.copy(file,file+“.bk”,true)?是的…这是不必要的…因为目录存在检查谢谢帮助:)