eclipse插件札记

eclipse插件笔记
eclipse插件开发中获取文件所在的目录和路径小结
2009-02-18 18:02
         前一段时间一直在搞eclipse插件开发,学习了不少东西!给我印象最深刻的是经常要获取eclipse相关的目录和路径,脑袋中大概整理了一下,总结如下:

1.String path = ((IFile)o).getLocation().makeAbsolute().toFile().getAbsolutePath();当然这句可以配合你选择的文件来获取当前文件的绝对路径

2.IWorkspace workspace = ResourcesPlugin.getWorkspace();   

   WorkspaceRoot root = workspace.getRoot();这两句是得到eclipse插件运行时产生的工作空间的根,再进一步root.getProjects()可以得到运行时工作空间下建立的所有工程;

Platform.getInstanceLocation().getURL().getPath();这句代码也可以得到runtimeworkspace;

3.可能有的时候开发想得到正在运行的插件工程下的某个文件,但是没有直接可以得到的方法,可以按照下面这样:

Bundle bundle = Platform.getBundle();//从Bundle来查找资源:

URL pluginUrl = Platform.find(bundle, new org.eclipse.core.runtime.Path("plugin.xml"));

URL pluginFileUrl = Platform.asLocalURL(pluginUrl);


org.eclipse.core.runtime.Path x = new org.eclipse.core.runtime.Path(pluginFileUrl.getPath());


   org.eclipse.core.runtime.Path y = new org.eclipse.core.runtime.Path(xxx.removeLastSegments(1).toString());

那么y此时得到的是该插件工程所在的目录,具体寻找哪个文件可以自定义;

4.假如我们要将插件工程下的某个文件作为输入流的话,可以如下:

InputStream in = *.class.getResourceAsStream("/conf/wfform-config.xml");

*代表该插件工程的插件类名,该句意为:将该插件工程下conf文件夹下的wfform-config.xml提取出来做为输入流;