我正在尝试开发一个插件,它将在树视图中呈现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。 请指教。
答案 0 :(得分:1)
你说location
是相对于项目目录的,但是你试图用workspace.getRoot().getFileForLocation()来解决它,其JavaDoc说,
路径应该是绝对的;相对路径将被视为绝对路径。