Kolay görünen bir sorum var ama düzgün çalışmasını sağlayamıyorum.Android: Zip içindeki Dosyaların Sayısı Al?
"Öğelerim" klasörümde, sıkıştırmama gerek duyduğum bir sıkıştırılmış dosyam var ve kullanıcıya ilerlemenin nasıl devam ettiğini göstermek için ProgessBar
sahibiyim.
Çalıştığım her şey var ama zip dosyası içinde dosya sayısı olmak ProgessBar
max değeri ayarlamak istiyorum. Bu klasördeki dosyaların sayısı bazen değişecektir, bu yüzden ProgessBar
'un zip içinde kaç dosya içerdiğine bağlı olmasını istiyorum.
Ben ZipInputStream
-API kullanıyorum ama zip dosyası içinde dosya sayısı almanın bir yolu yoktur görünmüyor.
ZipInputStream zin = new ZipInputStream(getAssets().open(
"myFile.zip"));
int numFiles = 0;
int increment = 0;
while (zin.getNextEntry() != null) {
numFiles++;
}
ZipEntry ze = null;
//Set the Max..value here..
progessBar.setMax(numFiles);
while ((ze = zin.getNextEntry()) != null) {
increment++;
progessBar.setProgress(increment);
}
Bu işler ancak döngüler temelde aynı şeyi yapıyorlar ki biraz gereksiz gibi görünüyor ederken iki sahip: Ben düşünme oturumları yegane yolu bu yapıyor.
size()
-yöntemine sahip bir ZipFile
-API olduğunu biliyorum, ancak dosyaya bir yol gerektiriyor ve dosyam 'öğeler' klasörünün içinde bulunduğundan beri çok iyi okunduğumdan eminim Bu dizin akışa göre.
Bunu gerçekleştirmek için beni bir yolu var mı?
ama ne bir dosya 10kb ve diğeri 10mb olup iki dosya arşivde yalnızca olup olmadığını? – pleerock
Çalışmaz, çünkü ZipInputStream'in getSize adı verilen herhangi bir yöntemi yoktur. – melbic