2016-07-04 7 views
0

В рабочей области у нас есть набор файлов ресурсов, содержащих содержимое в нем.Очистка содержимого файла ресурсов (IFile)

Проблема: когда я выбираю проект, мы можем получить файл ресурсов, и теперь мы хотим очистить содержимое файла. Поэтому мы попытались получить файл ресурсов как IFile, и если мы попытаемся использовать метод IFile::delete(), он удалит файл ресурсов из рабочей области вместо очистки содержимого.

Как мы можем очистить содержимое IFile, присутствующего в рабочей области, без удаления IFile в рабочей области?

+0

Я вижу, что вы новичок в SO Если вы чувствуете, что ответ решил проблему, отметьте ее как «принятую», нажав зеленую галочку. Это помогает сосредоточиться на старых постах, у которых до сих пор нет ответов. –

ответ

1

Используйте IFile::setContents(), чтобы изменить содержимое файла.

Чтобы очистить содержимое файла, используйте пустой входной поток:

InputStream newContents = new ByteArrayInputStream(new byte[ 0 ]); 
IProgressmonitor monitor = ... 
file.setContents(newContents, IResource.KEEP_HISTORY, monitor); 

Флаг KEEP_HISTORY сохраняет предыдущее содержимое в истории, так что пользователь может вернуться к более ранним версиям с Заменить> Локальные История. Если это нежелательно, используйте IResource.NONE.

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