簡體   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