我需要在绝对位置创建一个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
)不存在的异常。如何指定这不应该是相对路径?
答案 0 :(得分:1)
project.getFolder()
的名称必须是成员文件夹的名称(请参阅JavaDoc)。
您无法使用位于工作区外部的Resources API访问文件或文件夹。但是,如果M:\\...
路径位于属于工作区的项目中,则可以通过IWorkspaceRoot#getContainerForLocation()
例如:
IContainer container = project.getWorkspace().getRoot().getContainerForLocation( "M:\\..." );
返回的container
可以是IProject
或IFolder
。但请注意,返回的容器不一定位于project
内。