Как избежать «Используется другим процессом» при использовании File.Copy в C # - PullRequest
0 голосов
/ 21 марта 2012

Я пытаюсь скопировать файл из пути в другой, используя следующий код:

 File.Copy(oldPath, newPath);.

newPath представляет путь и имя файла, например C:\txt.txt

oldPath представляет путь и имя файла, например d:\d.txt

Я получаю следующее исключение:

C: \ txt.txt Используется из другого процесса

Почему отображается эта проблема?

Ответы [ 2 ]

2 голосов
/ 21 марта 2012

Существует восемь возможных исключений: UnauthorizedAccessException, ArgumentException, ArgumentNullException, PathTooLongException, DirectoryNotFoundException, FileNotFoundException, FileNotFoundException, IOException или NotSupportedException (обратитесь к документации MSDN по http://msdn.microsoft.com/en-us/library/c6cfw35a.aspx), чтобы найти детали.

Вы указали, что файл заблокирован процессом, который его создал.Это должно решить вашу проблему:

using (FileStream fs = File.Create("c:\\michal.txt")) 
{ 
}

File.Copy("c:\\michal.txt", "c:\\michal_new.txt");

File.Delete("c:\\michal.txt");
File.Delete("c:\\michal_new.txt");
1 голос
/ 09 мая 2012

Часто причина того, что одна из программ из Windows использует файл, который вы пытаетесь скопировать - в моем случае файл, который использовался Visual Studio cs, был в файле отладки ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...