如何在eclipse中获取包浏览器中选择的java文件的路径

时间:2013-09-24 14:30:17

标签: eclipse plugins eclipse-jdt

我在eclipse插件中有这个代码。我需要获取任何文件的路径。对于IFile的实例,但对于ICompilationUnit,我不知道。

final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    final IStructuredSelection selection = (IStructuredSelection) window.getSelectionService().getSelection("org.eclipse.jdt.ui.PackageExplorer");

    final Object firstElement = selection.getFirstElement();
    String selectedFile = "";

    if (firstElement instanceof IFile) 
    {
        IPath loc = ((IFile) firstElement).getLocation();
        if (loc != null) 
        {
            selectedFile = loc.toOSString();
            if( !selectedFile.endsWith( ".java")){
                selectedFile = "";
            }
        }
    } else {
        if( firstElement instanceof ICompilationUnit){

            CompilationUnit comUnit = ( CompilationUnit)firstElement;

        }
    }

3 个答案:

答案 0 :(得分:0)

尝试检查firstElement是CompilationUnit,而不是ICompilationUnit,因为它是ICompilationUnit的唯一一个实现。比你可以调用getCorrespondingResource()方法。

答案 1 :(得分:0)

使用:

IResource resource = (IResource)Platform.getAdapterManager().getAdapter(firstElement, IResource.class);

if (resource != null) {
    IPath path = resource.getLocation();

    ...
}

答案 2 :(得分:0)

您可以使用:

String path = iCompilationUnit.getResource().getFullPath();

这将为您提供所选ICompilationUnit的完整路径。