2011-12-22 43 views
5

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

我试图使用IFile对象是这样的:

final IFile file = container.getFile(new Path(myFileName)); 
... 
file.create(stream, true, monitor); 

认为只要可以作为所有文件夹的路径上的文件是否存在。但它不会创建任何缺少的文件夹(新包),但会引发“资源不存在”异常。

我找不到任何方法通过IResourceIWorkspace对象执行此操作。

回答

9

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

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); 
    } 
} 

这很适合我。

+0

我只是没有遇到IFolder接口 - 所以非常感谢! – capoocan

+2

我还必须像这样检查父容器的类型:'if(folder.getParent()instanceof IFolder)prepare ...'。否则,最后一次调用'getParent'会返回一个'IProject',随后的转换会导致'ClassCastException'。 – chrisklaussner

0

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

相关问题