我想在对文件执行任何操作之前创建备份文件,然后将其移动到文件夹结构为的位置
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
}
答案 0 :(得分:1)
可以绕过Directory.exists,如果有,则创建目录不会运行。另外,建议您不要进行2次io操作来编写文件。只需使用file.copy直接写入输出。