Tengo este código que lee todos los archivos de un directorio.
File textFolder = new File("text_directory");
File [] texFiles = textFolder.listFiles( new FileFilter() {
public boolean accept( File file ) {
return file.getName().endsWith(".txt");
}
});
Funciona muy bien. Llena la matriz con todos los archivos que terminan con ".txt" del directorio "text_directory".
¿Cómo puedo leer el contenido de un directorio de manera similar dentro de un archivo JAR?
Entonces, lo que realmente quiero hacer es enumerar todas las imágenes dentro de mi archivo JAR, para poder cargarlas con:
ImageIO.read(this.getClass().getResource("CompanyLogo.png"));
(Ese funciona porque el "CompanyLogo" está "codificado", pero la cantidad de imágenes dentro del archivo JAR podría ser de 10 a 200 de longitud variable).
EDITAR
Entonces supongo que mi principal problema sería: ¿Cómo saber el nombre del archivo JAR donde vive mi clase principal?
De acuerdo, podría leerlo usando java.util.Zip
.
Mi estructura es así:
Ellos son como:
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
Ahora mismo puedo cargar, por ejemplo, "images / image01.png" usando:
ImageIO.read(this.getClass().getResource("images/image01.png));
Pero solo porque sé el nombre del archivo, para el resto tengo que cargarlos dinámicamente.