获取各种路径总结
1、获取某plugin的路径
//方法一:
Platform.getBundle("sdmpluginid").getLocation().
//方法二:
eclipse采用osgi后是:
Activator.getDefault().getBundle().getLocation().
//方法三:
eclipse采用osgi前是:
SdmPlugin.getDefault().getBundle().getLocation().
2、获取工作空间的路径
ResourcesPlugin.getWorkspace();
3、获取工作空间下的所有projects
IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
4、从插件工程中获取插件的绝对路径
String absolutePath = Activator.getDefault().getStateLocation().makeAbsolute().toFile().getAbsolutePath();
结果:E:\workspaces\test\NH\runtime-abide.product\.metadata\.plugins\cn.com.sdm.test
5、获取工作空间下的某一个project
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject("工程名");
6、获取workspace的根
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
//从根来查找资源:
IResource resource = root.findMember(new Path(containerName));
7、从编辑器来获得编辑文件
IEditorPart editor = ((DefaultEditDomain)(parent.getViewer().getEditDomain())).getEditorPart();
IEditorInput input = editor.getEditorInput();
if(input instanceof IFileEditorInput){
IFile file = ((IFileEditorInput)input).getFile();
}
8、获取插件工程中某一个文件的绝对路径
SdmEditorPlugin.getDefault().getBundle().getLocation().replace("reference:file:/", "") + "conf/test.xml"));
下图是插件工程的test文件位置截图:
(https://img-blog.csdnimg.cn/20200219214826125.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l5X3d6aA==,size_16,color_FFFFFF,t_70)