如何获取 IProject 中的所有文件
How to get all files inside an IProject
我想使用 jdt 列出 java 项目中的所有文件,包括 jsps、xml 文件等
我试过下面的代码,但它只 returns java 资源(包括 class 文件,我不需要)。
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()' 执行 return 直接在当前容器中的所有操作。要查看所有文件,您还需要查看每个容器中的文件夹。
类似于:
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
方法来遍历容器内容调用回调。
我想使用 jdt 列出 java 项目中的所有文件,包括 jsps、xml 文件等
我试过下面的代码,但它只 returns java 资源(包括 class 文件,我不需要)。
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()' 执行 return 直接在当前容器中的所有操作。要查看所有文件,您还需要查看每个容器中的文件夹。
类似于:
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
方法来遍历容器内容调用回调。