将文件夹中的所有文件添加到zip文件中
package com.yuanhua;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;public class Test {public static void main(String[] args) throws IOException{addZipFiles("c:\\test","c:\\a.zip");}/** * 将文件夹中的所有文件添加到zip文件中; * @param sourcePath源文件夹 * @param zipfilename目的zip文件 * @throws IOException */public static void addZipFiles(String sourcePath, String zipfilename) throws IOException{FileOutputStream file = new FileOutputStream(zipfilename);ZipOutputStream zip = new ZipOutputStream(file);addZip(new File(sourcePath),zip,null);zip.flush();zip.close();}/** * 添加一层中的所有子文件,并递归添加子文件夹中的内容 * @param file 源文件夹 * @param zip目的zip文件输入流 * @param baseDirectoryzip文件目录结构,顶层为null * @throws IOException */public static void addZip(File file, ZipOutputStream zip, String baseDirectory) throws IOException{File[] tmp = file.listFiles();for(int i=0; i<tmp.length; i++){File subfile = tmp;if (subfile.isDirectory()){addZip(subfile,zip, (baseDirectory==null?"":(baseDirectory+ "/")) + subfile.getName()+"/");}else{ZipEntry zipsub = new ZipEntry((baseDirectory==null?"":baseDirectory)+ subfile.getName());zip.putNextEntry(zipsub);InputStream in = new BufferedInputStream(new FileInputStream(subfile));int a;while((a=in.read())!=-1){zip.write(a);}in.close();zip.flush();}}}}
页:
[1]