Here you can find the source of zipSubFolder(ZipOutputStream out, File folder, int basePathLength)
private static void zipSubFolder(ZipOutputStream out, File folder, int basePathLength) throws IOException
//package com.java2s; //License from project: Open Source License import java.io.BufferedInputStream; 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 final int BUFFER = 8192; private static void zipSubFolder(ZipOutputStream out, File folder, int basePathLength) throws IOException { File[] fileList = folder.listFiles(); for (File file : fileList) { if (file.isDirectory()) { zipSubFolder(out, file, basePathLength); } else { BufferedInputStream origin; byte data[] = new byte[BUFFER]; String unmodifiedFilePath = file.getPath(); String relativePath = unmodifiedFilePath .substring(basePathLength); FileInputStream fi = new FileInputStream(unmodifiedFilePath); origin = new BufferedInputStream(fi, BUFFER); ZipEntry entry = new ZipEntry(relativePath); out.putNextEntry(entry); int count; while ((count = origin.read(data, 0, BUFFER)) != -1) { out.write(data, 0, count); }//from w ww . j a va 2s. co m origin.close(); } } } }