Eclipse IFolder来自绝对路径

时间:2015-02-22 13:12:18

标签: java eclipse eclipse-plugin eclipse-rcp

我需要在绝对位置创建一个IFolder。 我通常有一个班级来做一个" build" (或至少我称之为" build")在工作区中为我服务。 build-target-folder的IFolder由以下方法返回:

public IFolder getTargetFolder(IProject project){
    return project.getFolder("build");
}

现在我为"部署"创建了这个的子类。 (进入具有绝对标识符的目录)。此子类包含相同的功能,但getTargetfolder例程应如下所示:

@Override
public IFolder getTargetFolder(IProject project){
    IPath path = new Path("M:\\Path\\To\\My\\Deployment\\Directory\\");
    IFolder target = project.getFolder(path);
    return target;  
}

然而,我遇到了问题,我似乎无法处理该文件夹以及一个说文件夹(<ProjectRoot>/Path/To/My/Deployment/Directory)不存在的异常。如何指定这不应该是相对路径?

1 个答案:

答案 0 :(得分:1)

project.getFolder()的名称必须是成员文件夹的名称(请参阅JavaDoc)。 您无法使用位于工作区外部的Resources API访问文件或文件夹。但是,如果M:\\...路径位于属于工作区的项目中,则可以通过IWorkspaceRoot#getContainerForLocation()

解析该文件夹

例如:

IContainer container = project.getWorkspace().getRoot().getContainerForLocation( "M:\\..." );

返回的container可以是IProjectIFolder。但请注意,返回的容器不一定位于project内。

可以在Resources and the file system

中找到更多信息