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

cap*_*can 6 java eclipse plugins

我尝试为Eclipse开发一个小插件,在几个文件夹(包)中创建几个Java文件,作为大型软件新模块的起点.

我试过用这样的IFile对象:

final IFile file = container.getFile(new Path(myFileName));
...
file.create(stream, true, monitor);
Run Code Online (Sandbox Code Playgroud)

只要文件路径上的所有文件夹都存在,该方法就可以正常工作.但它不会创建任何丢失的文件夹(新包),但会抛出"资源不存在"异常.

我找不到任何办法通过这个做IResourceIWorkspace对象.

Mat*_*ell 9

就个人而言,我使用一个小方法递归创建所有文件夹,如:

IFile file = project.getFile(newPath);

prepare((IFolder) file.getParent());
Run Code Online (Sandbox Code Playgroud)

然后是方法

public void prepare(IFolder folder) {
    if (!folder.exists()) {
        prepare((IFolder) folder.getParent())
        folder.create(false, false, null);
    }
}
Run Code Online (Sandbox Code Playgroud)

这对我很有用.

  • 我还必须检查父容器的类型,如下所示:`if(folder.getParent()instanceof IFolder)prepare ...`.否则,对`getParent`的最后一次调用将返回一个`IProject`,随后的强制转换将导致`ClassCastException`. (2认同)