您的位置:首页 > 编程语言 > Java开发

用Java压缩文件或目录下的所有文件

2008-05-01 06:23 246 查看
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();}}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: