对文件目录进行压缩为zip包

开发 开发工具
博主发表的文章,有的是自己原创,有的是这些年本人从网上积累的,方便大家学习。

 [[178884]]

  1. import java.io.File; 
  2. import java.io.FileInputStream; 
  3. import java.io.FileOutputStream; 
  4. import java.util.zip.ZipOutputStream; 
  5.  
  6. /** 
  7. * 实现对文件目录进行压缩为zip包 
  8. * Created by zyb on 7月31日. 
  9. */ 
  10. public class Compressor { 
  11.  /** 
  12.  
  13.  * @param inputFileName 输入一个文件夹 //"c:\\15统计报表" 
  14.  * @param zipFileName 输出一个压缩文件夹,打包后文件名字 //"D:\\Program Files\\/21bstzxReport.zip"; //压缩后的zip文件 
  15.  * @throws Exception 
  16.  */ 
  17.  public void zip(String inputFileName, String zipFileName) throws Exception { 
  18.  // System.out.println(zipFileName); 
  19.  zip(zipFileName, new File(inputFileName)); 
  20.  } 
  21.  private void zip(String zipFileName, File inputFile) throws Exception { 
  22.  ZipOutputStream out = new ZipOutputStream(new FileOutputStream( 
  23.  
  24.  zipFileName)); 
  25.  zip(out, inputFile, ""); 
  26.  out.closeEntry(); 
  27.  out.close(); 
  28.  } 
  29.  private void zip(ZipOutputStream out, File f, String base) throws Exception { 
  30.  if (f.isDirectory()) { //判断是否为目录 
  31.  File[] fl = f.listFiles(); 
  32.  
  33.  out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/")); 
  34.  base = base.length() == 0 ? "" : base + "/"
  35.  for (int i = 0; i < fl.length; i++) { 
  36.  zip(out, fl[i], base + fl[i].getName()); 
  37.  } 
  38.  } else { //压缩目录中的所有文件 
  39.  out.putNextEntry(new org.apache.tools.zip.ZipEntry(base)); 
  40.  FileInputStream in = new FileInputStream(f); 
  41.  int b; 
  42.  // System.out.println(base); 
  43.  while ((b = in.read()) != -1) { 
  44.  out.write(b); 
  45.  } 
  46.  in.close(); 
  47.  } 
  48.  } 

【本文是51CTO专栏作者张勇波的原创文章,转载请通过51CTO获取作者授权】

责任编辑:武晓燕 来源: 上下求索的Z先生博客
相关推荐

2009-12-24 10:12:02

Linux查看文件编码

2023-12-13 13:47:00

Linux重组文件

2010-03-05 09:40:08

Python递归

2023-05-29 19:17:31

2011-10-27 14:15:05

Java 7

2012-05-10 09:43:28

2010-01-11 17:58:36

VB.NET压缩ZIP

2023-06-19 07:31:52

压缩包java.Http

2023-07-05 07:36:36

SpringJava代码

2021-12-02 08:47:40

LinuxLinux命令

2011-08-15 14:07:53

Objective-C解压缩ZIP文件

2017-06-01 15:30:32

LinuxVim文件加密

2019-04-26 09:50:21

Linux压缩文件文件夹

2020-02-21 13:00:50

Linuxzip命令压缩文件

2010-11-29 14:24:06

Linux软件管理

2010-07-01 10:20:41

SQL Server

2010-04-30 11:22:23

Unix系统

2019-08-13 08:00:16

压缩工具7-Zip

2023-05-18 22:34:15

2011-12-30 11:14:41

Javazip
点赞
收藏

51CTO技术栈公众号