The main objective of this tutorial is to show how to list the content of a zip file along with zipping information. The program shows you:
- How to iterate through the list of content of a zip file
- How to get the name of the individual zip entry
- How to get the compressed file size of an individual zip entry
- How to get the uncompressed file size of an individual zip entry
- How to obtain the CRC information of a zip entry
- How to convert the long CRC information into hex format
- How to obtain the comments of the individual zip entry.
- Also note that since this tutorial tells you how to get the compressed file size and uncompressed file size, you can calculate the zip ratio yourself.
/**
* @author Kushal Paudyal
* www.sanjaal.com/java
* Last Modified On 05-15-2009
*/
package com.kushal.utils;
import java.io.IOException;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
/**
* Demonstrates the ability to display the contents of a zip file Also
* demonstrates how to get the zip info like compressed size, CRC etc.
*/
public class ZipContentDisplay {
/**
* This method takes the zipfile name input parameter Then lists the content
* of the zip file.
*/
public static void listContentsOfZipFile(String zipFileName) {
try {
ZipFile myZipFile = new ZipFile(zipFileName);
Enumeration zipEntries = myZipFile.entries();
ZipEntry zipEntry = null;
while (zipEntries.hasMoreElements()) {
zipEntry = (ZipEntry) zipEntries.nextElement();
System.out.println(zipEntry.getName());
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
public static void listContentsOfZipFileWithInfo(String zipFileName) {
try {
ZipFile myZipFile = new ZipFile(zipFileName);
Enumeration zipEntries = myZipFile.entries();
ZipEntry zipEntry = null;
while (zipEntries.hasMoreElements()) {
zipEntry = (ZipEntry) zipEntries.nextElement();
/**
* Get the file name
*/
String nameOfEntry = zipEntry.getName();
/**
* Get Compressed File Size
*/
long compressedSizeOfEntry = zipEntry.getCompressedSize();
/**
* Get Uncompressed file size
*/
long uncompressedSizeOfEntry = zipEntry.getSize();
/**
* Get the CRC Code. Note that we have converted to hex.
*/
String crc = Long.toHexString(zipEntry.getCrc());
/**
* Get the comment for the zip entry
*/
String comment = zipEntry.getComment();
/**
* Display the result
*/
System.out.println("FileName: " + nameOfEntry
+ "\nCompressed Size(B): " + compressedSizeOfEntry
+ "\nOriginal Size(B): " + uncompressedSizeOfEntry
+ "\nCRC :" + crc + "\nComments: " + comment);
System.out.println("***");
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
String zipFileName = "C:/Temp/abc.zip";
System.out.println("***Zip Content Display (File Names Only)***\n");
listContentsOfZipFile(zipFileName);
System.out
.println("\n\n***Zip Content Display (Detailed Information)***\n");
listContentsOfZipFileWithInfo(zipFileName);
}
}
———————————————
Sample Output of this program (depends on your input zip file)
***Zip Content Display (File Names Only)***
abc/
abc/20090511_Files/
abc/20090511_Files/continuum.txt
abc/20090511_Files/custtemp.txt
abc/20090511_Files/depdoc.txt
abc/20090511_Files/librarylog.txt
abc/20090511_Files/logtemp.txt
abc/20090511_Files/sfmlog.txt
***Zip Content Display (Detailed Information)***
FileName: abc/
Compressed Size(B): 0
Original Size(B): 0
CRC :0
Comments: null
***
FileName: abc/20090511_Files/
Compressed Size(B): 0
Original Size(B): 0
CRC :0
Comments: null
***
FileName: abc/20090511_Files/continuum.txt
Compressed Size(B): 592
Original Size(B): 1568
CRC :36bc742
Comments: null
***
FileName: abc/20090511_Files/custtemp.txt
Compressed Size(B): 808
Original Size(B): 2052
CRC :ce0100bb
Comments: null
***
FileName: abc/20090511_Files/depdoc.txt
Compressed Size(B): 230
Original Size(B): 330
CRC :adad0544
Comments: null
***
FileName: abc/20090511_Files/librarylog.txt
Compressed Size(B): 210
Original Size(B): 491
CRC :2b1bab39
Comments: null
***
FileName: abc/20090511_Files/logtemp.txt
Compressed Size(B): 93
Original Size(B): 257
CRC :7e89e401
Comments: null
***
FileName: abc/20090511_Files/sfmlog.txt
Compressed Size(B): 2142
Original Size(B): 7763
CRC :f2931100
Comments: null
***
———————————————–
The following is the snapshot of the zip file as seen through winzip application:

Originally posted 2009-05-15 12:28:15.