2014-12-03 11 views
1

Я динамически создаю файл в рабочей области и пытаюсь создать его экземпляр IFile.Ошибка преобразования Java.io.File в org.core.resource.IFile?

  IPath location= Path.fromOSString(file.getAbsolutePath()); 
      IFile iFile=ResourcesPlugin.getWorkspace().getRoot().getFile(location);   
      FileEditorInput input = new FileEditorInput(iFile); 

, но когда я пытаюсь увидеть, если IFile существует или нет (с использованием iFile.exists()) она дает ложные.

Я пробовал использовать канонический путь, но это также не помогло.

ответ

2

Изменения в файловой системе автоматически не обнаруживаются рабочей областью Eclipse, вам необходимо указать рабочей области, чтобы обновить ее представление о локальной файловой системе. Вы можете сделать это с помощью:

iFile.refreshLocal(IResource.DEPTH_ZERO, null); 

Если более чем один файл изменился вы можете сделать обновление на уровне папок, изменяя глубину.

+0

Извините, для меня это не сработало. Есть ли другая работа. – Raja

+0

Я нашел для него работу. Я использовал FileStoreEditorInput вместо FileEditorInput и создал fileStore с помощью LocalFile. Это работало для меня. – Raja

+1

FileStoreEditorInput действительно предназначен для файлов вне рабочей области. Редактирование не будет синхронизироваться с рабочей областью, что может вызвать проблемы. –

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

  • Нет связанных вопросов^_^