Making a zip file of directory including its subdirectories recursively : ZipFile « File « Java Tutorial






import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class Main {
  private static void zipDir(String zipFileName, String dir) throws Exception {
    File dirObj = new File(dir);
    ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
    System.out.println("Creating : " + zipFileName);
    addDir(dirObj, out);
    out.close();
  }

  static void addDir(File dirObj, ZipOutputStream out) throws IOException {
    File[] files = dirObj.listFiles();
    byte[] tmpBuf = new byte[1024];

    for (int i = 0; i < files.length; i++) {
      if (files[i].isDirectory()) {
        addDir(files[i], out);
        continue;
      }
      FileInputStream in = new FileInputStream(files[i].getAbsolutePath());
      System.out.println(" Adding: " + files[i].getAbsolutePath());
      out.putNextEntry(new ZipEntry(files[i].getAbsolutePath()));
      int len;
      while ((len = in.read(tmpBuf)) > 0) {
        out.write(tmpBuf, 0, len);
      }
      out.closeEntry();
      in.close();
    }
  }

  public static void main(String[] args) throws Exception {
    zipDir(args[0], args[1]);
  }
}








11.62.ZipFile
11.62.1.Create a zip file
11.62.2.Read zip file
11.62.3.Read a zip file checksum value
11.62.4.Write Zip file
11.62.5.Create checksum for a zip file
11.62.6.Use ZipFile to list all entries
11.62.7.Retrieve a compressed file from a ZIP file
11.62.8.Extract file/files from a zip file
11.62.9.Get uncompressed and compressed Size
11.62.10.Get file time for all zipped files
11.62.11.Get zip method: ZipEntry.STORED, ZipEntry.DEFLATED
11.62.12.Get CRC code for a zipped file
11.62.13.Get comment for a zipped file
11.62.14.Making a zip file of directory including its subdirectories recursively
11.62.15.Create a simple ZIP File: not retain any directory path information about the files.