2014-09-10 68 views
1

我有一個項目MyTestProject。我想爲root獲取IFolder對象。這是IPath是/ MyTestProject。有了這個IPath對象,我需要獲得IFolder對象。從IPath獲得項目根的IFolder

我在這個項目資源下有一個文件夾。爲此,IPath是/ MyTestProject /資源。有了這個,我得到使用下面的代碼

IPath path; //and has value /MyTestProject/resource 
final IFolder folder = ResourcesPlugin.getWorkspace().getRoot().getFolder(path); 

請建議任何方式爲/爲MyTestProject做到這一點的iFolder。

回答

6

項目沒有IFolder對象,而是使用IProject

IFolderIProject都擴展了​​接口,所以大多數方法都可用。

IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject("project name"); 

因此獲得IProject一個項目,如果你想你的代碼既IFolderIProject使用​​接口工作。

+0

對於我的要求,我需要存儲IFolder供以後使用,這是常見的代碼。有沒有辦法找到路徑是否不指向文件夾?我試過path.isRoot() - 這兩個例子都返回false。 – Krishnaveni 2014-09-11 01:29:14

+1

使用'path.segmentCount()'。一個項目總是有1段,一個文件夾總是有1段以上(因爲它必須在一個項目中)。 – 2014-09-12 13:53:04

+0

使用'IContainer'解決了我的問題。 – wisbucky 2017-07-15 00:07:03