Получить относительный путь из абсолютного URI для EObject

У меня есть URI для EObject, который выглядит так:

file:/C:/runtime-run123.product/Project1/examples/Apple.ecore#/

Я получаю URI, вызывая EcoreUtil.getURI(ePackage), где ePackage — это экземпляр класса EPackage.

Как я могу получить относительный путь от этого URI? Результат должен быть: /Project1/examples/Apple.ecore


person PotatoSong    schedule 27.02.2014    source источник


Ответы (1)


Вы можете использовать IFile#getFullPath для получения относительного пути. Сначала вам нужно преобразовать EObject в IFile.

Пример:

URI uri = EcoreUtil.getURI(eObject);
IPath path = new Path(uri.toFileString());
IFile file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(path);

System.out.println(file.getFullPath()); // Relative path
person Kohei Mikami    schedule 27.02.2014
comment
Работает отлично! Благодарю вас! - person PotatoSong; 27.02.2014