簡體   English   中英

如何獲取 IProject 中的所有文件

[英]How to get all files inside an IProject

我想使用jdt列出一個java項目中的所有文件,包括jsps、xml文件等。

我已經嘗試了下面的代碼,但它只返回 java 資源(包括我不需要的類文件)。

    List<String> resourceNames = new ArrayList<String>();
    IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();

    for (IProject project : projects) {

        if (project.isOpen() && project.isNatureEnabled(JavaCore.NATURE_ID)) {

            for (IResource resource : project.members()) {
                resourceNames.add(resource.getName() + "-" + resource.getFullPath().toString());
            }
        }
    }

任何人都可以請指出我正確的方向。

'members()' 確實返回直接在當前容器中的所有內容。 要查看所有文件,您還需要查看每個容器中的文件夾。

就像是:

void processContainer(IContainer container)
{
   IResource [] members = container.members();

   for (IResource member : members)
    {
      if (member instanceof IContainer) 
       {
         processContainer((IContainer)member);
       }
      else if (member instanceof IFile)
       {
         ... deal with the file
       }
    }
}

由於IProject擴展了IContainer只需調用

processContainer(project);

看一切。

IContainer (實際上是IResource )也有幾個accept方法來調用回調來遍歷容器內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM