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