0

我正在尝试开发一个插件,它将在树视图中呈现 XML 文件的元素,并且(双击时)应该在编辑器中打开文件。有问题的文件是插件资源。

我见过的大多数示例都将文件作为 IFile 从选择(选定元素)中获取;我的问题是我找不到提供该输入的方法。这是我已经尝试过的几个示例:

IProject project= ResourcesPlugin.getWorkspace().getRoot().getProject("the plugin project");
IFile file = testProject.getFile("test.xml");

IWorkspace workspace= ResourcesPlugin.getWorkspace();
IPath location= new Path(relative path); // local to the project directory
IFile file= workspace.getRoot().getFileForLocation(location);

不知何故,找不到我正在寻找的文件。我设法通过从以下提供的流中读取文件来渲染树:

MyClass.class.getResourceAsStream(relativePath);

我可以获取文件的 URL(使用 getResource()),但我不知道是否可以使用它来获取我需要的 IFile。请指教。

4

1 回答 1

1

您说location的是相对于项目目录,但是您尝试使用workspace.getRoot().getFileForLocation()来解决它,其 JavaDoc 说,

路径应该是绝对的;相对路径将被视为绝对路径。

于 2012-11-14T11:45:25.213 回答