Listing The Content Of Zip File With Zip Information In Java

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("nn***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:

[My Video Promotion]
  1. Java Object Serialization and Deserialization In MySQL Database
  2. How To Set Conditional Debug Breakpoints in Eclipse or IBM RAD?
  3. Rotating An Image In Java Graphics 2D By Specified Degree
  4. How To Unzip File Using Java – Simple Tutorial
  5. Java – How To Overlay One Image Over Another Using Graphics2D [Tutorial]
  6. Quick SQL Reference – Find Duplicate Data In A Table Using Having Clause
  7. Splitting PDF File Using Java iText API Into Multiple PDFs
  8. Object Serialization And De-Serialization In Java To Filesystem
  9. Finding Java Image Pixels Information – ARGB (Alpha, Red, Green Blue)
  10. Creating A 3D Pie Chart In Java Using JFreeChart [Example Source Code]
  11. Java Tutorial – Swing Text Drag And Drop – Sample Example
  12. Serialzing A Java Object Into XML and De-Serialzing using XMLEncoder And XMLDecoder
  13. Six Stages Of Debugging in Software Engineering
  14. Java 2D Graphics Example Tutorial On Paint, Gradient and Stroke
  15. Complete Tutorial On Using SOAP-UI to Mock Web Service Request / Response
  16. Listing The Content Of Zip File With Zip Information In Java
  17. Joke – Why do Java Programmers wear glasses?
  18. How to receive files via bluetooth in your MacBook Pro
  19. Calculating Folder Size Graphically and Generating Directory Size Chart In Java
Tagged , , , , , , , . Bookmark the permalink.

6 Responses to Calculating Folder Size Graphically and Generating Directory Size Chart In Java

  1. nocdib says:

    Thank you for this! It is just what I need

  2. d says:

    would that help you tocreate the file from ubunt server

  3. komal gaikwad says:

    in this code i got problem of array out of bound plz tell me solution.

  4. komal gaikwad says:

    In this code i got error
    Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 1
    plz send me proper code….

  5. Neethu says:

    Thank you very much for the solution. This is the one which i was searching.

  6. Manikant says:

    I need to copy to the shared folder which is shared and can be authenticate by using credentials.

    but here the code is giving to write .

    I need copy my folder from my local to shared location

    Please help

Leave a Reply to Manikant Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.