如何从OSGI包中获取文件夹?

时间:2013-06-18 07:41:08

标签: eclipse eclipse-plugin rcp eclipse-jdt

我有自己的OSGI包,其中包含一些资源的文件夹。如何从bundle中读取该文件夹并获取它的所有子项?

我在使用以下代码之前使用过:。

    Bundle bundle = Platform.getBundle(bundleID);
    URL fileURL = bundle.getEntry(templatePath);
    URL url = FileLocator.resolve(fileURL);

这段代码工作了我将Eclipse应用程序导出为Eclipse产品。

但我的网址不是分层次的。

2 个答案:

答案 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>的