디렉토리에서 모든 파일을 읽는 코드가 있습니다.
File textFolder = new File("text_directory");
File [] texFiles = textFolder.listFiles( new FileFilter() {
public boolean accept( File file ) {
return file.getName().endsWith(".txt");
}
});
잘 작동합니다. "text_directory"디렉토리에서 ".txt"로 끝나는 모든 파일로 배열을 채 웁니다.
JAR 파일 내 에서 비슷한 방식으로 디렉토리의 내용을 어떻게 읽을 수 있습니까?
그래서 제가 정말로하고 싶은 것은 내 JAR 파일 내의 모든 이미지를 나열하는 것입니다. 그래서 다음과 같이로드 할 수 있습니다.
ImageIO.read(this.getClass().getResource("CompanyLogo.png"));
( "CompanyLogo"가 "하드 코딩"되어 있기 때문에 작동하지만 JAR 파일 내의 이미지 수는 가변 길이가 10 ~ 200 개일 수 있습니다.)
편집하다
그래서 내 주요 문제는 다음과 같습니다 . 내 메인 클래스 가있는 JAR 파일 의 이름 을 아는 방법 ?
나는 그것을 사용하여 읽을 수 있었다 java.util.Zip
.
내 구조는 다음과 같습니다.
그들은 다음과 같습니다.
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
지금은 다음을 사용하여 "images / image01.png"인스턴스를로드 할 수 있습니다.
ImageIO.read(this.getClass().getResource("images/image01.png));
하지만 파일 이름을 알고 있기 때문에 나머지 파일을 동적으로로드해야합니다.