Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过插件在Eclipse项目中创建包(文件夹)_Java_Eclipse_Plugins - Fatal编程技术网

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

Java 如何通过插件在Eclipse项目中创建包(文件夹),java,eclipse,plugins,Java,Eclipse,Plugins,我尝试为Eclipse开发一个小插件,在几个文件夹(包)中创建几个Java文件,作为大型软件新模块的起点 我尝试过使用IFile对象,如下所示: final IFile file = container.getFile(new Path(myFileName)); ... file.create(stream, true, monitor); 只要文件路径上的所有文件夹都存在,该选项就有效。但它不会创建任何丢失的文件夹(新包),但会引发“资源不存在”异常 通过IResource或IWorksp

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

我尝试过使用
IFile
对象,如下所示:

final IFile file = container.getFile(new Path(myFileName));
...
file.create(stream, true, monitor);
只要文件路径上的所有文件夹都存在,该选项就有效。但它不会创建任何丢失的文件夹(新包),但会引发“资源不存在”异常


通过
IResource
IWorkspace
对象,我找不到任何方法来实现这一点。

我知道这并不能回答您的问题,但我建议您看看?通过这种方式,您可以使用所需的目录结构和样板文件,以可配置且不依赖于Eclipse的方式创建项目模板。

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

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界面-非常感谢!我还必须像这样检查父容器的类型:
if(folder.getParent()instanceof IFolder)prepare…
。否则,最后一次调用
getParent
将返回一个
IProject
,随后的强制转换将导致
ClassCastException