Ich habe diesen Code, der alle Dateien aus einem Verzeichnis liest.
File textFolder = new File("text_directory");
File [] texFiles = textFolder.listFiles( new FileFilter() {
public boolean accept( File file ) {
return file.getName().endsWith(".txt");
}
});
Es funktioniert großartig. Es füllt das Array mit allen Dateien, die mit ".txt" aus dem Verzeichnis "text_directory" enden.
Wie kann ich den Inhalt eines Verzeichnisses in einer ähnlichen Art und Weise lesen in einer JAR - Datei?
Was ich also wirklich tun möchte, ist, alle Bilder in meiner JAR-Datei aufzulisten, damit ich sie laden kann mit:
ImageIO.read(this.getClass().getResource("CompanyLogo.png"));
(Das funktioniert, weil das "CompanyLogo" "fest codiert" ist, aber die Anzahl der Bilder in der JAR-Datei zwischen 10 und 200 variabler Länge liegen kann.)
BEARBEITEN
Ich denke, mein Hauptproblem wäre: Woher weiß ich den Namen der JAR-Datei, in der meine Hauptklasse lebt?
Zugegeben, ich konnte es mit lesen java.util.Zip
.
Meine Struktur ist wie folgt:
Sie sind wie:
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
Im Moment kann ich zum Beispiel "images / image01.png" laden mit:
ImageIO.read(this.getClass().getResource("images/image01.png));
Aber nur weil ich den Dateinamen kenne, muss ich sie im Übrigen dynamisch laden.