Используя следующий код, я пытаюсь переписать файл, если он существует. Currenly он бросает IOException. Как я могу исправить эту проблему?'File.Copy' не перезаписывает файл
File.Copy(filePath, newPath);
Используя следующий код, я пытаюсь переписать файл, если он существует. Currenly он бросает IOException. Как я могу исправить эту проблему?'File.Copy' не перезаписывает файл
File.Copy(filePath, newPath);
Использование
File.Copy(filePath, newPath, true);
Третий параметр перезаписать, поэтому, если вы установите его на истинный файл назначения будет перезаписана.
Затем вызовите the overload
File.Copy(filePath, newPath, true);
Затем используйте другой File.Copy(string, string, boolean)
. Третий параметр указывает, следует ли перезаписывать файл назначения, если он существует (true
, если вы хотите переписать, false
в противном случае).
Но что вы ожидали? Если функция предназначена для броска, когда файл назначения существует, вам нужно найти способ решения этой проблемы. Поэтому либо:
File.Copy(string, string)
, которая удаляет файл назначения для вас, если он существует.С MSDN, вы можете сделать:
File.Copy(filePath, newPath, true);
Существует перегрузка этой функции, которая содержит третий параметр. Этот параметр называется «перезаписывать». Если вы пройдете true
, до тех пор, пока файл не доступен только для чтения, он будет перезаписан.
очень хорошая точка с атрибутом «Только для чтения». – JohnB
File.Copy(filePath, newPath, bool overwrite)
.
Это может помочь вам:
Я использую это и работает,
File.Copy(src,des,true); //(string source, string destination, bool overwrite)
Reference (MSDN): File.Copy Method (String, String, Boolean)
Для "плавающей Bools" Я следую правилу всегда использовать их как Именованные параметры для ясности File.Copy (filePath, newPath, overwrite: true); – t3dodson