简体   繁体   中英

How to get the absolute path of project files in eclipse using plugin

I am trying to create a plugin which would give me a list of absolute path of all the files inside a project opened in eclipse.

I tried but I am able to get the path of the active window only..

My action code is:

  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);

Here I am only getting the path for active window..But I want list of absolute path of all the files inside a project ..mainly the files under src folder...

Please guide me if I can do it in the same way or do I need to use some different API for this.

After my research, I found out below code would get the path of Eclipse's current workspace's project directory:

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

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

Note: You need to import org.eclipse.core.resources and org.eclipse.core.runtime to use these API's

Source

Given an IResource , you can use the method org.eclipse.core.resources.IResource.getLocation() that returns an IPath with the "absolute path of this resource in the local file system, or null if no path can be determined". Then you can use the method org.eclipse.core.runtime.IPath.toOSString() that returns a String representation.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM