为什么 IResource.getRawLocation() 为 IProject 返回 null

2022-01-16 00:00:00 eclipse-plugin eclipse

我需要一个项目文件夹的绝对位置,所以我尝试了

I need the absolute location of a project folder, so I tried

project.getRawLocation()

但这会返回 null (至少在我使用 Import ... Existing projects into workspace 手动导入项目的情况下,我已经检查了 将项目复制到工作区复选框).

but this returns null (at least in my case in which I have imported the project manually using Import ... Existing projects into workspace and I have checked the Copy projects into workspace checkbox).

事情是这样的

project.getParent().getRawLocation() 

返回正确的 /work/Projekte/runtime-MyProduct.product

project.members()[0].getRawLocation()

返回 /work/Projekte/runtime-MyProduct.product/Test/.cproject 这也是正确的.

returns /work/Projekte/runtime-MyProduct.product/Test/.cproject which is correct as well.

因此,我希望如此

project.getRawLocation() 

会返回 /work/Projekte/runtime-MyProduct.product/Test,但它会返回 null.

would return /work/Projekte/runtime-MyProduct.product/Test, but it returns null.

谁能解释和/或告诉我哪里错了?

Can anyone explain and/or show me where I'm wrong?

推荐答案

getRawLocation()

如果此资源是现有项目,则返回的路径将为等于项目描述中的位置路径.

If this resource is an existing project, the returned path will be equal to the location path in the project description.

以及项目描述的 JavaDoc IProjectDescription.getLocation() 说:

and the JavaDoc for the project description IProjectDescription.getLocation() says:

如果应该使用默认位置,则返回null

null is returned if the default location should be used

getLocation() 调用会返回一个路径.

The getLocation() call will return a path.

相关文章