在OSGI Bundle中查找文件和文件夹

时间:2010-09-15 09:55:26

标签: java file-io eclipse-plugin osgi

我正在编写必须在osgi环境中执行的测试用例,我已将测试数据放在测试包中,这是一组文件。我能够使用bundle.getResource访问测试数据文件,它返回一个URL,我可以从中获取特定文件的InputStream,但是如何找到测试插件中特定文件夹中的所有文件列表。在eclispe中,我可以使用fileLocator来执行此操作。

/束
TESTDATA
此时就把one.txt存盘
two.txt
three.txt
文件夹1
FILE1.TXT
FILE2.TXT

在上面的软件包中,我想查找testdata文件夹中存在的所有文件和文件夹。


最好的答案,
凯沙夫

2 个答案:

答案 0 :(得分:12)

如果您知道信息所在的包,请使用Bundle.findEntries或Bundle.getEntryPaths。

答案 1 :(得分:-5)

类加载器访问的资源(类,文件,流等)可以由一切提供。通常,资源是从JAR文件加载的。但它也可以是数据库,文件系统或HTTP资源。因此,为了获得资源列表,您需要依赖类加载器背后的源代码。如果资源位于JAR内部,您需要获取JAR本身并通过例如访问它来访问它。 java.util.zip。由于ClassLoader接口不提供有关后台源的信息,因此您必须采用其他方式(例如挂钩到您使用的OSGi框架中)。