我正在尝试开发一个插件,它将在 TreeView 中呈现 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。 请指教。
最佳答案
您说 location
是相对于项目目录的,但是您尝试使用 workspace.getRoot().getFileForLocation() 来解析它,其 JavaDoc 说,
The path should be absolute; a relative path will be treated as absolute.
关于java - Eclipse插件: how to provide input for the editor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13378046/