0

我在 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;
    }
}
4

3 回答 3

1

采用:

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

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

    ...
}
于 2013-09-24T15:27:41.783 回答
0

尝试检查 firstElement 是否是 a CompilationUnit,而不是 a ICompilationUnit,因为它是ICompilationUnit. 比你可以调用getCorrespondingResource()方法。

于 2013-09-24T14:45:00.850 回答
0

您可以使用:

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

这将为您提供所选ICompilationUnit.

于 2014-10-09T06:32:59.437 回答