将文件复制到新创建的文件夹中,提示“正在被另一个进程使用”

时间:2019-01-27 11:27:09

标签: c# directory copy target

我尝试创建一个将数据库复制到用户所需位置的子应用程序。尽管弹出错误,表明我新创建的文件夹正在由另一个应用程序使用(我还没有使用任何流读取器)。

文件是正确的,并且到选定目录的副本完全可以正常工作,尽管问题是在创建文件夹时以及尝试使用他后开始的。

//Snippet
string SourceFile1 = @"C:\Users\user\Documents\DLLTESTBASE.mdf";
string SourceFile2 = @"C:\Users\user\Documents\DLLTESTBASE_log.ldf";
string BackupDirectory = BackupLocation.SelectedPath + "\\" + BackupName;
if (!Directory.Exists(BackupDirectory)){
    Directory.CreateDirectory(BackupDirectory);
    }
else{
     MessageBox.Show("A copy has been found :\n" + BackupDirectory , "Copy has been stoped!");
    }

string targetPath1 = BackupDirectory + "\\DB.mdf"; 
string targetPath2 = BackupDirectory + "\\DB_log.ldf";

try{
     System.IO.File.Copy(SourceFile1, targetPath1);
     System.IO.File.Copy(SourceFile2, targetPath2);
     MessageBox.Show("Copy has been successful.", "Completed!");
    }
catch (Exception ex){
    MessageBox.Show("An error has been occured."+ex,"Operation failed!");}
    }

结果必须是2个文件都在文件夹内。

3 个答案:

答案 0 :(得分:0)

与Sql Service一起使用的Sql数据库文件

转到服务

停止“ Sql Server”服务

您可以使用此链接stop-or-start-sql-server-service

If u dont want to stop service use this link

您还可以实用地使用附加和分离数据库Attaching-and-Detach

答案 1 :(得分:0)

在创建文件之前尝试以下行: File.SetAttribute(targetpath1,FileAttribute.Normal);

如果文件已经存在,则会引发异常。

您将需要删除文件然后写入文件或使用overwrite参数: System.IO.File.Copy(sourcefile1,targetPath1,true);

答案 2 :(得分:0)

对不起迟到性反应,因为它似乎这个问题是存在的东阳我的主要应用程序的一个隐藏隔间,问题重新启动我的电脑后解决,所以你是正确的人重新出现时,我拼命地跑的主要应用程序SQL文件连接正在运行(尽管它不可​​见)。

谢谢大家的帮助☺