在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
提取文件夹?
最佳答案
看起来构建目录的代码是org.eclipse.osgi.storage.bundlefile.ZipBundleFile
。
我看不出有什么方法可以影响它对空目录的作用。
关于java - FileLocator 的 toFileURL 方法忽略空文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26235880/