如何列出JAR文件中的文件?
2022-08-31 08:03:17
我有这个代码,从目录中读取所有文件。
File textFolder = new File("text_directory");
File [] texFiles = textFolder.listFiles( new FileFilter() {
public boolean accept( File file ) {
return file.getName().endsWith(".txt");
}
});
它工作得很好。它用目录“text_directory”中以“.txt”结尾的所有文件填充数组。
如何在 JAR 文件中以类似的方式读取目录的内容?
因此,我真正想做的是列出JAR文件中的所有图像,以便我可以加载它们:
ImageIO.read(this.getClass().getResource("CompanyLogo.png"));
(这个之所以有效,是因为“CompanyLogo”是“硬编码的”,但JAR文件中的图像数量可以从10到200可变长度。
编辑
所以我想我的主要问题是:如何知道我的主类所在的JAR文件的名称?
当然,我可以使用.java.util.Zip
我的结构是这样的:
它们就像:
my.jar!/Main.class
my.jar!/Aux.class
my.jar!/Other.class
my.jar!/images/image01.png
my.jar!/images/image02a.png
my.jar!/images/imwge034.png
my.jar!/images/imagAe01q.png
my.jar!/META-INF/manifest
现在,我可以使用以下命令加载例如“images/image01.png”
ImageIO.read(this.getClass().getResource("images/image01.png));
但只是因为我知道文件名,所以对于其余的,我必须动态加载它们。