Saya memiliki kode ini yang membaca semua file dari direktori.
File textFolder = new File("text_directory");
File [] texFiles = textFolder.listFiles( new FileFilter() {
public boolean accept( File file ) {
return file.getName().endsWith(".txt");
}
});
Ini bekerja dengan baik. Ini mengisi array dengan semua file yang diakhiri dengan ".txt" dari direktori "text_directory".
Bagaimana saya bisa membaca isi direktori dengan cara yang sama di dalam file JAR?
Jadi yang benar-benar ingin saya lakukan adalah, mencantumkan semua gambar di dalam file JAR saya, sehingga saya dapat memuatnya dengan:
ImageIO.read(this.getClass().getResource("CompanyLogo.png"));
(Yang itu berfungsi karena "CompanyLogo" adalah "hardcode" tetapi jumlah gambar di dalam file JAR bisa dari 10 hingga 200 panjang variabel.)
EDIT
Jadi saya kira masalah utama saya adalah: Bagaimana cara mengetahui nama file JAR dimana kelas utama saya tinggal?
Memang saya bisa membacanya menggunakan java.util.Zip
.
Struktur saya seperti ini:
Mereka seperti:
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
Sekarang saya bisa memuat misalnya "images / image01.png" menggunakan:
ImageIO.read(this.getClass().getResource("images/image01.png));
Tapi hanya karena saya tahu nama filenya, selebihnya saya harus memuatnya secara dinamis.