1

我有自己的 OSGI 包,里面有一些资源的文件夹。如何从捆绑中读取该文件夹并获取它的所有子级?

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

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

此代码适用于我将 Eclipse 应用程序导出为 Eclipse 产品。

但我有 URL 不是分层异常。

4

2 回答 2

2

您可以使用 Bundle 上的 findEntries 方法来定位包中的文件和任何附加的片段:

Bundle bundle = Platform.getBundle(bundleID);
Enumeration<URL> urls = bundle.findEntries("/folder", "*", false);
于 2013-06-18T09:51:47.890 回答
1

您应该根据 InputStreams 编写代码并使用@NickWilson建议的方法来检索输入流并在您的程序中使用它们。

但是,如果您真的需要在磁盘上某个地方爆炸的文件夹,您将使用org.eclipse.core.runtime.FileLocator.toFileURL(URL)而不是resolve(URL)

于 2013-06-18T12:47:17.417 回答