Nasıl bir JAR dosyası içindeki dosyaları listeler?
Bir dizindeki tüm dosyaları okur bu kod var.
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. İle biten tüm dosyaları ile bir dizi doldurur "."dizinden "". txt text_directory
Nasıl benzer bir şekilde, bir dizinin içeriğini okuyabilir miyimiçindeJAR dosyası?
Peki ben gerçekten ne yapmak istiyorum, tüm görüntüleri içinde listeye benim JAR dosyası, onlara yük ben
ImageIO.read(this.getClass().getResource("CompanyLogo.png"));
(Bu işe yaradı çünkü "" "" ama JAR dosyası içinde görüntü sayısını 10 200 değişken uzunlukta olabilir.) kodlanmış CompanyLogo
EDİT
Bilmek Nasıl . benim asıl sorun olurdu sanırım: ^strong>JAR dosyasının adıana sınıf benim mi yaşıyor?
Verilen java.util.Zip
kullanarak okuyabilirim.
Benim Yapısı böyle
Gibidir:
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 an "/image01 görüntüler.örneğin yüklemek mümkün değilim"kullanarak: . png
ImageIO.read(this.getClass().getResource("images/image01.png));
Ama sadece dosya adını biliyorum çünkü, geri kalan kısmı için onları dinamik olarak yüklemek için var.
CEVAP
CodeSource src = MyClass.class.getProtectionDomain().getCodeSource();
if (src != null) {
URL jar = src.getLocation();
ZipInputStream zip = new ZipInputStream(jar.openStream());
while(true) {
ZipEntry e = zip.getNextEntry();
if (e == null)
break;
String name = e.getName():
if (name.startsWith("path/to/your/dir/")) {
/* Do something with this entry. */
...
}
}
}
else {
/* Fail... */
}
Java 7, FileSystem
KAVANOZ (zip) dosyası oluşturun ve NİO dizin ve mekanizmaları yürüyüş filtreleme ile arama yapmak için kullanın unutmayın. Bu daha kolay Kavanoz işleme kodu yazmak için yapar ve "dizinler. patladı
Nasıl birden fazla çalıştırmak için .B...
Nasıl bir OpenSSL almak için .pem dosy...
Nasıl yinelemeli olarak bulmak ve alt ...
Nasıl bir toplu iş dosyası içinde Deği...
Nasıl scala bir alt dizinindeki tüm do...