import java.util.zip.*;
import java.io.*;
import java.util.*;public class CompressT {
  public CompressT() {}  public static int dozip(String strfp, String strzip) {
    try {
      ZipOutputStream zipout = new ZipOutputStream(new CheckedOutputStream(new
          FileOutputStream(strzip), new CRC32()));
      creatZipEntry(strfp, zipout, "");
      zipout.close();
    }
    catch (Exception e) {
      System.out.println(e.toString());
      return -1;
    }
    return 1;
  }  private static void creatZipEntry(String strfilepath, ZipOutputStream out,
                                    String relativeDir) throws
      FileNotFoundException, IOException {
    File file = new File(strfilepath);
    String[] strlist = file.list();
    if (strlist == null || strlist.length <= 0)
      return;
    for (int i = 0; i < strlist.length; i++) {
      String AllfileName = file.getPath().replace('\\', '/') + "/" + strlist[i];
      File dir = new File(AllfileName);
      if (dir.isDirectory()) {
        ZipEntry ze2 = new ZipEntry(relativeDir + strlist[i] + "/");
        out.putNextEntry(ze2);
        creatZipEntry(AllfileName, out, relativeDir + strlist[i] + "/");
        continue;
      } //if(dir.isDirectory()) {
      ZipEntry ze1 = new ZipEntry(relativeDir + strlist[i]);
      out.putNextEntry(ze1);
      FileInputStream f = new FileInputStream(AllfileName);
      byte[] b = new byte[f.available()];
      f.read(b);
      out.write(b);
      f.close();
      out.closeEntry();
    } //for(int i=0;i<strlist.length;i++){
  }  public static void main(String[] args) {
    CompressT.dozip("F:/lib", "d:/test.zip");
  }
}