我在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;
}
}
答案 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
的完整路径。