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],"release2005.zip"); }catch(Exception ex){ ex.printStackTrace(); } } } |
|小黑屋|手机版|知行技术社区 ( 湘ICP备11020288号-1 )
GMT+8, 2020-4-5 11:05 , Processed in 0.007714 second(s), 8 queries , Redis On.
Powered by Discuz! X3.4
Copyright © 2001-2020, Tencent Cloud.