Eclipse Plugin: получение IFile из строки - PullRequest
4 голосов
/ 18 ноября 2011

Я делаю сериализацию, которая также содержит путь IFile, который должен быть сохранен как строка.

Я использую этот IFile в проекте плагина. Для отладки или запуска Eclipse запускает новое рабочее пространство. Это рабочее пространство для тестирования имеет корень где-то относительно папки плагинов. Моя проблема заключается в том, что когда я обращаю свой IFile к абсолютному пути, мое рабочее пространство для тестирования Eclipse рассматривает файл как вне рабочего пространства и выдает исключения. Если я использую относительный путь проекта, создание IFile из строки завершится неудачно, а IFile будет нулевым.

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

В настоящее время я делаю реконструкцию из String-> IFile следующим образом:

//name is a string with the absolute path
      IPath location = new Path(name);
        IFile file = project.getFile(location.lastSegment());

Но, как уже упоминалось, работает только с абсолютным путем, который не работает в рабочей области eclipse testing.

Спасибо за подсказку

1 Ответ

6 голосов
/ 18 ноября 2011

Вы очень близки.Вы хотите:

IPath path = new Path(name);
IFile file = project.getFile(path);

Имя должно быть абсолютным (к рабочей области) или относительным к проекту путем.Этот интерфейс определен в IContainer.getFile (IPath).Я изменил переменную из "location", потому что местоположение обычно подразумевается как фактический (локальный) путь к файлу ОС.Чтобы получить путь, используйте:

IPath path = file.getProjectRelativePath();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...