System.IO.IOException: Невозможно создать файл, так как он уже существует
Хочу переместить текстовый файл в другую папку. Если в каталоге "D:\myflora\folder" пусто, то файл перемещается, но при повторной попытке переместить файл, выскакивает ошибка. Что я не так делаю?
string fileName = @"D:\Orders\Order_"+ orderID + ".txt";
string dir = @"D:\myflora\folder";
File.Move(fileName, Path.Combine(dir, Path.GetFileName(fileName)));
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
Используйте такой вариант вызова File.Move, но он есть только в .NET Core 3.0 и позднее:
File.Move(fileName, Path.Combine(dir, Path.GetFileName(fileName)), true);
public static void Move (string sourceFileName, string destFileName, bool overwrite);
overwrite Boolean: true для перезаписи конечного файла, если он уже существует; в противном случае — false.
Автор решения: timur
→ Ссылка
Если файл уже существует, File.Move выбрасывает исключение. Можно вызвать метод File.Delete перед вызовом File.Move:
string fileName = @"D:\Orders\Order_"+ orderID + ".txt";
string dir = @"D:\myflora\folder";
string path = Path.Combine(dir, Path.GetFileName(fileName));
File.Delete(path);
File.Move(fileName, path);