[英]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.