主要代码参考了beansoft的ZipUtil,添加了一个方法,
可以把不同目录文件添加到zip中,并做了一些改进,使用了apache的zip类,(原为jdk的zip类),使支持中文文件名。
apache的zip类可以从ant中抽取。apache好像没有提供单独下载。
package com.order;
import java.io.*;
import java.util.List;
import org.apache.tools.zip.*;
/**
* 把多个文件打包到一个文件
* @author xiaofei.hu
*
*/
public class ZipUtil {
public static void toZip(File[] files, File zipFile){
}
/**
* The buffer.
*/
protected static byte buf[] = new byte[1024];
/**
* 遍历目录并添加文件.
* @param jos - JAR 输出流
* @param file - 目录文件名
* @param pathName - ZIP中的目录名
* @throws IOException
* @throws FileNotFoundException
*/
private static void recurseFiles(ZipOutputStream jos, File file, String pathName)
throws IOException, FileNotFoundException
{
if (file.isDirectory())
{
pathName = pathName + file.getName() + "/";
jos.putNextEntry(new ZipEntry(pathName));