import java.io.File;
import org.apache.tools.zip.ZipOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream;
/**
* @author tyrone * */ public class DirectoryZip { /** *@param inputFileName, file or directory waiting for zipping ,outputFileName output file name * */ public void zip(String inputFileName,String outputFileName) throws Exception { ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outputFileName)); zip(out, new File(inputFileName), ""); 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(); if (System.getProperty("os.name").startsWith("Windows")){ out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "//")); base = base.length() == 0 ? "" : base + "//"; } else{ 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[] args){ DirectoryZip m_zip=new DirectoryZip(); try{ m_zip.zip(args[0],"release//2005.zip"); }catch(Exception ex){ ex.printStackTrace(); } }
}
|
用Java压缩文件或目录下的所有文件
最新推荐文章于 2023-05-25 09:03:36 发布