标签:main void tor jcs turn nal parent 获取 throws
package com.jcsoft.transaction.common.action; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; /** * 压缩文件 */ public class DownPackAction { public static File doZip(String sourceDir, String zipFilePath) throws IOException { File file = new File(sourceDir); File zipFile = new File(zipFilePath); ZipOutputStream zos = null; try { // 创建写出流操作 OutputStream os = new FileOutputStream(zipFile); BufferedOutputStream bos = new BufferedOutputStream(os); zos = new ZipOutputStream(bos); String basePath = null; // 获取目录 if(file.isDirectory()) { basePath = file.getPath(); }else { basePath = file.getParent(); } zipFile(file, basePath, zos); }finally { if(zos != null) { zos.closeEntry(); zos.close(); } } return zipFile; } /** * @param source 源文件 * @param basePath * @param zos */ private static void zipFile(File source, String basePath, ZipOutputStream zos) throws IOException { File[] files = null; if (source.isDirectory()) { files = source.listFiles(); } else { files = new File[1]; files[0] = source; } InputStream is = null; String pathName; byte[] buf = new byte[1024]; int length = 0; try{ for(File file : files) { if(file.isDirectory()) { pathName = file.getPath().substring(basePath.length() + 1) + "/"; zos.putNextEntry(new ZipEntry(pathName)); zipFile(file, basePath, zos); }else { pathName = file.getPath().substring(basePath.length() + 1); is = new FileInputStream(file); BufferedInputStream bis = new BufferedInputStream(is); zos.putNextEntry(new ZipEntry(pathName)); while ((length = bis.read(buf)) > 0) { zos.write(buf, 0, length); } } } }finally { if(is != null) { is.close(); } } } public static void main(String[] args) { try { //将D:\\test1文件夹打包到D:\\test2并命名为test1.zip doZip("D:\\test1","D:\\test2\\test1.zip"); } catch (IOException e) { e.printStackTrace(); } } }
标签:main void tor jcs turn nal parent 获取 throws
原文地址:http://www.cnblogs.com/angto64/p/6177957.html