我有这样一个代码,它可以读取目录中的所有文件。
File textFolder = new File("text_directory");
File [] texFiles = textFolder.listFiles( new FileFilter() {
public boolean accept( File file ) {
return file.getName().endsWith(".txt");
}
});
它工作得很好,它将数组中所有以“ . txt”结尾的文件填充到目录“ text _ directory”中。
如何以类似的方式读取目录的内容 内心一个 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));
但只是因为我知道文件名,其余的我必须动态加载它们。