J'ai ce code qui lit tous les fichiers d'un répertoire.
File textFolder = new File("text_directory");
File [] texFiles = textFolder.listFiles( new FileFilter() {
public boolean accept( File file ) {
return file.getName().endsWith(".txt");
}
});
Cela fonctionne très bien. Il remplit le tableau avec tous les fichiers qui se terminent par ".txt" du répertoire "text_directory".
Comment puis-je lire le contenu d'un répertoire de la même manière dans un fichier JAR?
Donc, ce que je veux vraiment faire, c'est lister toutes les images dans mon fichier JAR, afin que je puisse les charger avec:
ImageIO.read(this.getClass().getResource("CompanyLogo.png"));
(Celui-ci fonctionne car le "CompanyLogo" est "codé en dur" mais le nombre d'images à l'intérieur du fichier JAR peut être de 10 à 200 de longueur variable.)
ÉDITER
Donc, je suppose que mon problème principal serait: Comment connaître le nom du fichier JAR où vit ma classe principale?
Certes, je pouvais le lire en utilisant java.util.Zip
.
Ma structure est comme ceci:
Ils sont comme:
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
À l'heure actuelle, je suis capable de charger par exemple "images / image01.png" en utilisant:
ImageIO.read(this.getClass().getResource("images/image01.png));
Mais seulement parce que je connais le nom du fichier, pour le reste je dois les charger dynamiquement.