Your Ad Here

Listing The Content Of Zip File With Zip Information In Java

Kushal Paudyal January 1st, 2010.This post has 254 views

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:

Related Tutorials




Sanjaal.com is owned and maintained by Sanjaal Corps, Nepal. The company offers Webhosting and Domain Registration Services, IT Solutions and Business Analysis. Sanjaal.com website features H1B Visa Information, Entertainment Portal, Link Directory Service, Free Articles, Free Open Source Tutorials on Java and J2EE Platform, Digital Photography, High Resolution Picture Gallery and Free Reliable Image Hosting Services. Future plan includes Open Source Software Development Portal, Technical Solutions and Customizable Movie and Music Arena. We would be introducing data backup, data recovery, data hosting and voip solutions. Stay free from phishing – our website does not ask for your credit card and banking information. Happy Surfing!

Blog Widget by LinkWithin

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

  • Share/Bookmark

Your Ad Here

Trackback URI | Comments RSS

Leave a Reply


Your Ad Here