【问题标题】:Get relative path from absolute URI for EObject从 EObject 的绝对 URI 获取相对路径
【发布时间】:2014-03-30 03:57:29
【问题描述】:
我有一个 EObject 的 URI,如下所示:
file:/C:/runtime-run123.product/Project1/examples/Apple.ecore#/
我通过调用EcoreUtil.getURI(ePackage) 获取URI,其中ePackage 是EPackage 类的一个实例。
如何从该 URI 获取相对路径?结果应该是:/Project1/examples/Apple.ecore
【问题讨论】:
标签:
eclipse
path
eclipse-emf
emf
【解决方案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