如何使用插件获取eclipse中项目文件的绝对路径

时间:2013-03-06 11:57:01

标签: java eclipse-plugin eclipse-api

我正在尝试创建一个插件,它会给我一个在eclipse中打开的项目中所有文件的绝对路径列表。

我试过但我只能获得活动窗口的路径..

我的操作代码是:

  IWorkbenchPart workbenchPart = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart(); 
    IFile file = (IFile) workbenchPart.getSite().getPage().getActiveEditor().getEditorInput().getAdapter(IFile.class);
    if (file == null)
        try {
            throw new FileNotFoundException();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    String path = file.getRawLocation().toOSString();
    System.out.println("path: " + path);

这里我只获取活动窗口的路径。但是我想要项目中所有文件的绝对路径列表..主要是src文件夹下的文件......

如果我能以同样的方式做到这一点,请指导我,或者我是否需要使用一些不同的API。

2 个答案:

答案 0 :(得分:7)

经过我的研究,我发现下面的代码将获得Eclipse当前工作空间项目目录的路径:

//get object which represents the workspace  
IWorkspace workspace = ResourcesPlugin.getWorkspace();  

//get location of workspace (java.io.File)  
File workspaceDirectory = workspace.getRoot().getLocation().toFile()

注意:您需要导入org.eclipse.core.resourcesorg.eclipse.core.runtime才能使用这些API

Source

答案 1 :(得分:0)

给定一个 IResource,你可以使用方法 org.eclipse.core.resources.IResource.getLocation() 返回一个 IPath 和“本地文件系统中该资源的绝对路径,如果没有路径可以返回 null决定”。然后您可以使用返回字符串表示的方法 org.eclipse.core.runtime.IPath.toOSString()