2014-08-27 3 views
0

Так я следующее:скопировать содержимое IFILE другого IFile

IFile oldIvy = this.project.getFile("ivy.xml"); 

IFile newIvy = this.project.getFile("tempIvy.xml); 

Я внес изменения в tempIvy.xml и теперь я хочу, чтобы скопировать содержимое tempIvy.xml обратно к ivy.xml.

Я пробовал методы, такие как copy, setContents и т. Д. Он просто не копирует содержимое одного в другое.

Любые предложения?

например. Я сделал:

oldIvy.setContents(newIvy.getContents(), true, false, monitor); 

Вот API я имел в виду ..

Спасибо!

+0

Является ли код, исключающий любые исключения? –

+0

После некоторого расследования я получаю ресурсы от ошибки синхронизации на tempIvy.xml. Попытка выяснить, как исправить ошибку синхронизации. –

ответ

0

Если вы внесете изменения в файл рабочей области из-за пределов рабочей области или с помощью API-интерфейсов, отличных от Eclipse, таких как обычные операции ввода-вывода файлов Java, вам нужно будет использовать IFile.refreshLocal, чтобы сообщить Eclipse о том, как выбрать изменения.

refreshLocal не требуется, если вы используете API-интерфейсы Eclipse для изменения содержимого файла.

Существует возможность автоматического обновления в разделе «Настройки»> «Общие»> «Рабочая область», но ваш код не должен полагаться на это.

0

Попробуйте использовать refreshLocal(), как описано here. Это должно заставить Eclipse обновить свои ссылки на файл, а затем вы сможете получить доступ к содержимому.

+0

this.project.refreshLocal (IResource.DEPTH_INFINITE, монитор); исправлена ​​проблема. Просто обновление на IFile (s) не работает корректно. –

Смежные вопросы