我有自己的OSGI包,其中包含一些资源的文件夹。如何从bundle中读取该文件夹并获取它的所有子项?
我在使用以下代码之前使用过:。
Bundle bundle = Platform.getBundle(bundleID);
URL fileURL = bundle.getEntry(templatePath);
URL url = FileLocator.resolve(fileURL);
这段代码工作了我将Eclipse应用程序导出为Eclipse产品。
但我的网址不是分层次的。
答案 0 :(得分:2)
您可以使用Bundle上的findEntries方法来查找包中的文件以及任何附加的片段:
Bundle bundle = Platform.getBundle(bundleID);
Enumeration<URL> urls = bundle.findEntries("/folder", "*", false);
答案 1 :(得分:1)
您应该根据InputStreams编写代码,并使用@NickWilson建议的方法检索输入流并在程序中使用它们。
但是如果你真的需要在某个地方的磁盘上展开该文件夹,你可以使用 org.eclipse.core.runtime.FileLocator.toFileURL(URL)而不是 resolve(URL)< / em>的