Bir dizindeki tüm dosyaları okuyan bu koda sahibim.
File textFolder = new File("text_directory");
File [] texFiles = textFolder.listFiles( new FileFilter() {
public boolean accept( File file ) {
return file.getName().endsWith(".txt");
}
});
Harika çalışıyor. Diziyi, "text_directory" dizininden ".txt" ile biten tüm dosyalarla doldurur.
Bir JAR dosyası içindeki bir dizinin içeriğini benzer şekilde nasıl okuyabilirim ?
Yani gerçekten yapmak istediğim şey, JAR dosyamın içindeki tüm resimleri listelemek, böylece onları şu şekilde yükleyebilirim:
ImageIO.read(this.getClass().getResource("CompanyLogo.png"));
(Bu işe yarıyor çünkü "CompanyLogo" "kodlanmış" ancak JAR dosyasındaki görüntü sayısı 10 ila 200 değişken uzunlukta olabilir.)
DÜZENLE
Sanırım asıl sorunum şu olurdu: Ana sınıfımın yaşadığı JAR dosyasının adını nasıl öğrenebilirim ?
Bunu kullanarak okuyabileceğime izin verildi java.util.Zip
.
Yapım şöyle:
Onlar ... gibi:
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
Şu anda şunu kullanarak örneğin "images / image01.png" dosyasını yükleyebiliyorum:
ImageIO.read(this.getClass().getResource("images/image01.png));
Ama sadece dosya adını bildiğim için, geri kalanı için onları dinamik olarak yüklemem gerekiyor.