2015-04-15 5 views
0

Я пишу программу, которая должна копировать и архивировать файл в две папки Edited и Archived соответственно. Я проверил свои каталоги, они существуют и правильно введены из того, что я могу сказать, я исключил их, чтобы сохранить эту краткую информацию.Weird IOexception для file.move

If TxtDest.Text <> "" Then 
     File.Copy(oFD.FileName, <Copy Destination>) 
    End If 
    File.Move(oFD.FileName, <Archive Destination>) 

    MsgBox("Your file has been saved.", MsgBoxStyle.OkOnly, "") 

Я успешно копирую файл, но перемещение дало мне проблемы. Когда он выполняется, я получаю IOException: «Невозможно создать файл, если этот файл уже существует». Есть ли у кого-нибудь и идеи относительно того, почему это происходит или знаете путь вокруг исключения?

Спасибо!

+0

Там ошибка говорит, что все! Перейдите к этому пути, и там уже существует файл 'exist'. Бьюсь об заклад, если вы удалите его и повторите попытку, он будет работать ... Чтобы исправить эту проблему, просто проверьте, существует ли файл, если он не перемещает файл ... – Codexer

+0

Вы забыли File.Delete (). Вероятно, вам стоит подумать о том, хотите ли вы действительно сделать это или у вас есть ошибка в организации «архива». –

ответ

0

Если вы прочитали документацию по адресу File.Copy method.

Copy(String, String) Копирует существующий файл в новый файл. Перезапись файла с таким же именем - не разрешено.

Copy(String, String, Boolean) Копирует существующий файл в новый файл. Допускается перезапись файла с таким же именем.

Таким образом, если файл уже существует в этом месте необходимо использовать вторую перегрузку с указанием Справедливо для последнего аргумента, чтобы заставить его быть перезаписаны

1

Как оказалось, этот файл путь для неполны.

Я включил папки назначения, но оставил имя файла. Смотрите ниже:

Был: "H:\AppDev\Visual Studio 2010\Projects\RawFixerTest1\Test Data for RawFixer\5820\Survey\FieldWrk\TDS\Archived\"

Is: "H:\AppDev\Visual Studio 2010\Projects\RawFixerTest1\Test Data for RawFixer\5820\Survey\FieldWrk\TDS\Archived\" & fInfo.Name

Где finfo является Информация о файле объекта.