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

王朝java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

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();

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有