İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır
Zafer Teker
tekzaf@yahoo.com

Bir Zip Dosyasındaki Dosyaların İsimlerini Ekrana Basan Program

Giriş

Bu örnekte bir zip dosyasının içinde bulunan dosyaların isimlerini standard ekrana basıyoruz. Bu örnek bir zip dosyası içindeki bilgiye nasıl erişilebileceği de gösterir.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 import java.util.zip.*;
  2 import java.io.*;
  3 public class ZipContentDumper{
  4   public static void dumpFileNames(String zipFile){
  5     try{
  6       ZipInputStream zis=new ZipInputStream(new FileInputStream(zipFile));
  7       ZipEntry entry;
  8       while((entry=zis.getNextEntry())!=null){
  9         String name=entry.getName();
 10         System.out.println("entry name: "+name);
 11         zis.closeEntry();
 12       }
 13       zis.close();
 14     }catch(IOException e){e.printStackTrace();}
 15   }
 16   public static void main(String[] args) {
 17     String file=args[0];
 18     dumpFileNames(file);
 19   }
 20 }

Açıklama

Zip dosyasının path'ini dışarıdan(komut satırından) alıyoruz. Path'i aldıktan sonra dumpFileNames() method'unu çağırıyoruz. Bu method verilen path'teki zip dosyasını bulur, içindeki dosyaların isimlerini ekrana basar. Önce zip dosyası için bir FileInputStream açılır. Bu stream ZipInputStream class'ının kurucusuna verilir. Böylece zip dosyasının içeriği ZipInputStream nesnesinden alınabilir.

ZipInputStream class'ında her dosya ZipEntry nesnelerine karşılık gelir. Bizdosyaların içindeki dosyalara erişmek için sırayla ZipEntry'leri elde etmemiz gerekir. Bunun için ZipInputStream class'ında getNextEntry() method'u bulunmaktadır. Bu method her dosya için bir stream açar. Bu ZipEntry nesnesinin adından dosyanın adı elde edilebilir. getName() methodu ile dosyanın adı alınır. Eğer tüm ZipEntry'ler biterse getNextEntry() method'u null döndüreceğinden döngüden çıkılır.

En son açılmış olan stream'ler kapatılmalıdır. Hem ZipInputStream için bir stream, hem de her ZipEntry için bir stream açıldığında tüm bu stream'ler kapatılmalıdır. ZipEntry stream'leri closeEntry() method'u ile, ZipInputStream için close() method'u ile kapatılırlar.

Dosya Listesi

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır