ディレクトリからすべてのファイルを読み取るこのコードがあります。
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));
しかし、ファイル名がわかっているという理由だけで、残りのファイルは動的にロードする必要があります。