借助this和this个问题,我设法通过从我的插件包中复制它来创建项目中大部分所需的文件结构。
URL templatesURL = Activator.getDefault().getBundle().getEntry(TEMPLATES_PATH);
File templatesFolder = new File(FileLocator.toFileURL(templatesURL).getPath());
copyFiles(templatesFolder, project, monitor);
我有两个文件夹TEMPLATES_PATH + "\test\java"
,其中没有文件。我也想创建这些,但他们没有。调查让我进入了OSGi提取包内容的文件夹:
C:\eclipse\configuration\org.eclipse.osgi\<number>\0\.cp
未提取文件夹!我可以创建一个空文件"test\java\.touch"
或使用
IFolder testFolder = project.getFolder(new Path("test"));
testFolder.create(true, true monitor);
testFolder.getFolder(new Path("java")).create(true, true monitor);
我可以使用其中一种方式获得所需的结构,但我想知道:有没有办法让FileLocator
提取文件夹?
答案 0 :(得分:1)
看起来构建目录的代码是org.eclipse.osgi.storage.bundlefile.ZipBundleFile
。
我认为没有办法影响它对空目录的作用。