Here you can find the source of addFolderToZip(String path, File srcFolder, ZipOutputStream zip)
private static void addFolderToZip(String path, File srcFolder, ZipOutputStream zip) throws IOException
//package com.java2s; //License from project: LGPL import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class Main { private static void addFolderToZip(String path, File srcFolder, ZipOutputStream zip) throws IOException { if (srcFolder.list().length == 0) { addFileToZip(path, srcFolder, zip, true); } else {//from w w w . jav a 2s . co m for (File file : srcFolder.listFiles()) { if (path.equals("")) { addFileToZip(srcFolder.getName(), file, zip, false); } else { addFileToZip(path + "/" + srcFolder.getName(), file, zip, false); } } } } private static void addFileToZip(String path, File srcFile, ZipOutputStream zip, boolean flag) throws IOException { if (flag == true) { zip.putNextEntry(new ZipEntry(path + "/" + srcFile.getName() + "/")); } else { if (srcFile.isDirectory()) { addFolderToZip(path, srcFile, zip); } else { int len; byte[] buf = new byte[1024]; FileInputStream in = new FileInputStream(srcFile); String pathPrefix = (!path.equals("")) ? path + "/" : ""; zip.putNextEntry(new ZipEntry(pathPrefix + srcFile.getName())); while ((len = in.read(buf)) > 0) { zip.write(buf, 0, len); } in.close(); } } } }