如何通过插件在Eclipse项目中创建包(文件夹)

7
我尝试开发一个小的Eclipse插件,用于创建多个Java文件并将它们放置在不同的文件夹(包)中作为一个更大软件模块的起点。
我已经尝试使用以下方式的IFile对象: ```IFile```
final IFile file = container.getFile(new Path(myFileName));
...
file.create(stream, true, monitor);

只要文件所在路径上的所有文件夹都存在,这样就能起作用。但是它不会创建任何缺失的文件夹(新包),而是会抛出“资源不存在”的异常。
我找不到通过IResource或者IWorkspace对象来完成这个任务的方法。
2个回答

10

个人而言,我使用一个小方法来递归地创建所有文件夹,类似于:

IFile file = project.getFile(newPath);

prepare((IFolder) file.getParent());

然后是该方法

public void prepare(IFolder folder) {
    if (!folder.exists()) {
        prepare((IFolder) folder.getParent())
        folder.create(false, false, null);
    }
}

这对我很有效。


我刚刚没有遇到IFolder接口 - 所以非常感谢! - capoocan
4
我还必须像这样检查父容器的类型:if (folder.getParent() instanceof IFolder) prepare...。否则,对getParent方法的最后一次调用将返回一个IProject对象,并且接下来的强制类型转换将导致ClassCastException异常。 - klaussner

0

我知道这并不能回答你的问题,但是我可以建议你看看Maven Archetypes。这样,你就可以以可配置且不依赖于Eclipse的方式创建具有所需目录结构和样板文件的项目模板了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接