Saturday, October 8, 2011

List the contents of a zip file

To list the contents of a zip file you need to get the entries of the file since every file in a zip file is represented by an entry. In this case we assume that the filename of the zip file is 'testfile.zip'. By calling the entries method of the ZipFile object we get an Enumeration back that can be used to loop through the entries of the file.
 Note that we have to cast each element in the Enumeration to a ZipEntry. Normally some more extensive processing of the entries would probably be done, but here we just print out the name of each entry (i.e the name of the file or directory in the zip file).

package org.best.example;
import java.io.IOException;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

/**
 *
 * @author javadb.com
 */
public class Main {
   
    public void listContentsOfZipFile() {
       
        try {
            ZipFile zipFile = new ZipFile("testfile.zip");
           
            Enumeration zipEntries = zipFile.entries();
           
            while (zipEntries.hasMoreElements()) {
               
                //Process the name, here we just print it out
                System.out.println(((ZipEntry)zipEntries.nextElement()).getName());
               
            }
           
        } catch (IOException ex) {
            ex.printStackTrace();
        }
       
    }
   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       
        new Main().listContentsOfZipFile();
       
    }
}

No comments: