1

我想获取一个包含在 jar 包中的目录中的文件列表。我有一个“图像”文件夹,在其中我有一个Images应该从该目录加载所有图像的类。

过去我使用MyClass.class.getResourceAsStream("filename");来读取文件,但是如何读取目录?

这是我尝试过的:

System.out.println(Images.class.getResource("").getPath());
System.out.println(new File(Images.class.getResource("").getPath()).listFiles());

我尝试了,Images.class.getResource因为我必须使用File并且没有接受InputStream.

代码产生

file:/home/k55/Java/MyApp/dist/Package.jar!/MyApp/images/
null

所以它正在查找我要从中列出文件的文件夹,但它无法列出文件。

我在其他论坛上读到,实际上你不能对 jar 存档中的文件夹使用这种方法,那么我该如何实现呢?

更新:如果可能的话,我想读取文件而不必使用ZipInputStream

4

1 回答 1

0

你不能轻易做到这一点。

你需要做什么:

  1. 获取jar文件的路径。Images.class.getResource("/something/that/exists").getPath()
  2. 剥离“!/某物/那个/存在”。
  3. 使用Zip 文件系统浏览 Jar 文件。这有点骇人听闻。
于 2013-10-24T08:35:40.590 回答