Копирование файлов во вновь созданную папку с ошибкой "используется другим процессом - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь создать подпрограмму, которая копирует базу данных в нужное место пользователя.Несмотря на то, что появляется сообщение о том, что моя вновь созданная папка используется другим приложением (я не использовал потоковые программы чтения).

Файлы правильные, и копия в выбранный каталог полностью работает, хотя проблемазапускается, когда я создаю папку и после того, как я пытаюсь использовать его.

//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 голосов
/ 27 января 2019

Попробуйте создать следующую строку перед созданием файлов: File.SetAttribute (targetpath1, FileAttribute.Normal);

Вы получите исключение, если файлы уже существуют.

Вам нужно будет либо удалить файлы, а затем записать их или использовать параметр перезаписи: System.IO.File.Copy (sourcefile1, targetPath1, true);

0 голосов
/ 31 января 2019

Извините за поздний ответ, так как кажется, что проблема возникла из-за скрытого отделения моего основного приложения, проблема решилась после перезагрузки компьютера и снова появилась, когда я запустил основное приложение, так что вы были правы, ребята, что sql file-connectionбыл запущен (хотя его не было видно).

Спасибо всем за помощь ☺

0 голосов
/ 27 января 2019

Файл базы данных Sql, используемый со службой Sql

Перейти к службам

Остановить службу "Sql Server"

Вы можете использовать эту ссылку stop-or-start-sql-server-service

Если вы не хотите останавливать службу, воспользуйтесь этой ссылкой

Также вы можете прагматически подключать и отключать БД Прикрепление-и-Detach

...