繁体   English   中英

如何获得与项目选择相对应的不同工作空间

[英]how to get different workspace corresponding to project selection

我正在开发eclipse插件。 在项目资源管理器中,有几个项目,我将这些项目存储在不同的工作区中(我添加了新项目,但工作区不同)。 为了获得所选项目的工作区,我使用以下代码

ResourcesPlugin.getWorkspace().getRoot().getLocation().toString();

但是它总是返回我第一次打开项目时选择的工作空间。 有什么方法可以从项目资源管理器中获取与不同项目选择相对应的不同工作空间。

在项目选择侦听器中,您可以执行以下操作。 我希望您指的是标准的Eclipse项目资源管理器。

ISelectionService service = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService();
    IStructuredSelection structured = (IStructuredSelection) service.getSelection(IPageLayout.ID_PROJECT_EXPLORER);
    if (structured instanceof IStructuredSelection)
    {
        Object selectedObject = ((IStructuredSelection) structured).getFirstElement();
        if (selectedObject instanceof IAdaptable)
        {
            IResource resource = (IResource) ((IAdaptable) selectedObject).getAdapter(IResource.class);
            if (resource != null)
            {
                IProject project = resource.getProject();
                 IPath location = project.getLocation();
            }
        }
    }   

所有项目均在当前工作空间中创建。 Eclipse一次最多只有一个工作空间可用。

如果使用其他位置创建项目,则可以在项目位置中看到该项目。

IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();

IProject project = root.getProject("Project");

IPath pathInWorkspace = project.getFullPath();

IPath actualLocation = project.getLocation();

用您的项目名称替换“ Project”,或从选择中找到该项目。

pathInWorkspace是工作空间的相对路径,在这种情况下,它只是/Project

actualLocation是项目在文件系统中的实际位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM