Сегодня у меня возникла странная проблема: с года и нескольких версий/тестов приложения следующий код был успешно использован для замены файла другим.
File.Replace(path + ".tmp", path, null);
Это работало локально, а также с UNC-путями (сетевые ресурсы). Но сегодня я получил следующую ошибку, когда я использовал этот код для замены файла по пути UNC (локальный работает все еще):
Процесс не может получить доступ к файлу, потому что он используется другим процессом
Когда я использую следующий код вместо вышесказанного, он работает:
File.Delete(path);
File.Move(path + ".tmp", path);
Итак, мои вопросы:
- В чем разница между двумя фрагментами кода?
- Возможно, Microsoft изменила способ работы File.Replace?
Я использую .Net Framework 4.0 с Visual Studio 2010.
Спасибо заранее.