FileLocator的方法toFileURL忽略空文件夹

时间:2014-10-07 12:21:34

标签: java eclipse eclipse-plugin osgi-bundle

借助thisthis个问题,我设法通过从我的插件包中复制它来创建项目中大部分所需的文件结构。

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提取文件夹?

1 个答案:

答案 0 :(得分:1)

看起来构建目录的代码是org.eclipse.osgi.storage.bundlefile.ZipBundleFile

我认为没有办法影响它对空目录的作用。