java用apache包压缩文件夹

java用apache包压缩文件夹

利用java的ZipOutputStream类压缩文件或文件夹中的文件

package codemaking.util;

import java.io.File; import org.apache.tools.zip.ZipOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.ZipInputStream; import java.util.zip.ZipEntry;

public class CompressBook {   public CompressBook() {   }

  /*    * inputFileName 输入一个文件夹    * zipFileName 输出一个压缩文件夹    */   public void zip(String inputFileName) throws Exception {     String zipFileName = "c://test.zip"; //打包后文件名字     System.out.println(zipFileName);     zip(zipFileName, new File(inputFileName));   }

  private void zip(String zipFileName, File inputFile) throws Exception {     ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));     zip(out, inputFile, "");     System.out.println("zip done");     out.close();   }

  private void zip(ZipOutputStream out, File f, String base) throws Exception {     if (f.isDirectory()) {       File[] fl = f.listFiles();       out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/"));       base = base.length() == 0 ? "" : base + "/";       for (int i = 0; i < fl.length; i++) {         zip(out, fl[i], base + fl[i].getName());       }     }     else {       out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));       FileInputStream in = new FileInputStream(f);       int b;       System.out.println(base);       while ( (b = in.read()) != -1) {         out.write(b);       }       in.close();     }   }

  public static void main(String [] temp){     CompressBook book = new CompressBook();     try {       book.zip("c://test",new File("c://test"));     }     catch (Exception ex) {     }   } }

你可能感兴趣的:(java用apache包压缩文件夹)