/*

提供zip文件的解压缩接口:

AdapterZipFile:

输入:zipFileName(zip文件的绝对路径),outputDirectory(zip文件解压缩后的存放路径)

输出:

说明:初始化函数

unZipFile:

输入:无

输出:

说明:解压缩zip文件,解压缩后存放到outputDirectory路径下

GetZipFileList:

输入:无

输出:list

说明:解压缩后的文件列表绝对路径存放在ArrayList动态数组中

*/

package com.mop.pushmail.adapter.htmlziprar;

import java.io.*;

import java.util.*;

import org.apache.tools.zip.*;

public class AdapterZipFile {

String zipFileName = null;//zip文件的绝对路径

String outputDirectory = null;//zip文件解压缩后的存放路径

ArrayList list = new ArrayList();//文件解压缩后的文件列表绝对路径

//    public AdapterZipFile(String zipFileName) {

//        if(zipFileName == null){

//            return;

//        }

//        this.zipFileName = zipFileName.replace("/","\\");

//        unZipFile();

//    }

//初始化

public AdapterZipFile(String zipFileName, String outputDirectory){

if(zipFileName == null){

return;

}

this.zipFileName = zipFileName;

if(outputDirectory != null){

this.outputDirectory = outputDirectory;

}else{

this.outputDirectory = zipFileName.substring(0,

zipFileName.replace('\\', '/').lastIndexOf("/"));

}

// unZipFile();

}

//创建目录

private void createDirectory(String directory, String subDirectory) {

String dir[];

File fl = new File(directory);

try {

if (subDirectory == "" && fl.exists() != true)

fl.mkdirs();

else if (subDirectory != "") {

dir = subDirectory.replace("\\","/").split("/");

for (int i = 0; i < dir.length; i++) {

File subFile = new File(directory + File.separator + dir[i]);

if (!subFile.exists())

subFile.mkdir();

directory += File.separator + dir[i];

}

}

}catch (Exception ex) {

System.out.println(ex.getMessage());

}

}

//解压缩文件

//如果outputDierctory为null,解压到zipFileName文件的当前目录下

public void unZipFile() {

File file = new File(zipFileName);

if (!file.exists()) {

return;

}

createDirectory(outputDirectory, "");

try {

ZipFile zipFile = new ZipFile(zipFileName);

Enumeration e = zipFile.getEntries();

ZipEntry zipEntry = null;

while (e.hasMoreElements()) {

zipEntry = (ZipEntry) e.nextElement();

if (zipEntry.isDirectory()) {

String name = zipEntry.getName();

name = name.substring(0, name.length() - 1);

File f = new File(outputDirectory + File.separator + name);

f.mkdir();

} else {

String fileName = zipEntry.getName();

fileName = fileName.replace('\\', '/');

//文件在多层目录下 这时需要创建目录如:d1/d2/1.txt

if (fileName.indexOf("/") != -1) {

createDirectory(outputDirectory, fileName.substring(0,

fileName.lastIndexOf("/")));

fileName = fileName.substring(

fileName.lastIndexOf("/") + 1, fileName

.length());

}

list.add(outputDirectory + File.separator

+ zipEntry.getName());

File f = new File(outputDirectory + File.separator

+ zipEntry.getName());

f.createNewFile();

InputStream in = zipFile.getInputStream(zipEntry);

FileOutputStream out = new FileOutputStream(f);

byte[] by = new byte[1024];

int c;

while ((c = in.read(by)) != -1) {

out.write(by, 0, c);

}

out.close();

in.close();

}

}

} catch (Exception ex) {

System.out.println(ex.getMessage());

}

}

//返回zip文件解压撒后文件列表的绝对路径     public ArrayList GetZipFileList(){         return list;     } }

java 文件解压缩zip_java解压缩zip文件相关推荐

  1. java解压两层zip文件_Java解压缩zip - 解压缩多个文件或文件夹实例

    java解压缩zip - 多个文件(包括文件夹),具体如下: 对多个文件和文件夹进行压缩,对复杂的文件目录进行解压. 压缩方法使用的是可变参数,可以压缩1到多个文件..可以写数组的方式或者一个个写到参 ...

  2. 使用python解压缩rar、zip文件

    使用python解压缩rar.zip文件 1 解压缩rar文件 步骤 (1) 导入 unrar 模块:pip install unrar (2) 下载 unrar library 并按照默认安装路径安 ...

  3. python怎么解压rar文件_用Python解压缩rar、zip文件的方法

    玩蛇网本文为大家提供关于用Python解压缩rar.zip文件的方法源码.Python语言对文件方面的处理还是很方便的,例如以前有为大家介绍过Python读取分割压缩TXT文本文件的方法.Python ...

  4. 将文件夹压缩成zip文件

    一 代码 package ZipFile;import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUt ...

  5. php将文件夹打包zip文件,php将文件夹打包成zip文件

    php将文件夹打包成zip文件:function addFileToZip($path,$zip){ $handler=opendir($path); //打开当前文件夹由$path指定. while ...

  6. Python压缩新文件到已有ZIP文件

    本文要点在于使用Python标准库zipfile创建压缩文件时,如果使用'a'模式时,可以追加新内容. from zipfile import ZipFile from os import listd ...

  7. php 文件夹打包_php将文件夹打包成zip文件

    php将文件夹打包成zip文件:function addFileToZip($path,$zip){ $handler=opendir($path); //打开当前文件夹由$path指定. while ...

  8. linux 解压文件夹下所有zip文件

    解压上述文件. find . -name '*.zip' # 查看当前文件夹下所有zip文件 cd zip文件的父级文件夹目录 unzip '*.zip' # 运行此命令即可 还有一种方法, 直接使用 ...

  9. java zip 替换文件_替换一个Zip文件而不解压缩在Java

    我有一个zip文件,我想用另一个文件替换它里面的一个文件.因此,不需要删除zip条目,只需将zip条目的文件替换为另一个条目即可.替换一个Zip文件而不解压缩在Java 这是我试过的. public ...

最新文章

  1. 仅凭一部iPhone手机,打造现实版元宇宙
  2. 第二章:深入C#数据类型
  3. Vue iView Admin 动态路由菜单加载 前后端分离(springboot 2.x iview admin vue 前后端分离 模型设计器 动态数据权限...
  4. python函数的万能参数
  5. mysql授权用户主机_MySQL用户授权(GRANT)
  6. jquery基本操作
  7. twitter集成第三方登录是窗口一直出现闪退的解决方法
  8. 作者:孙忠富(1957-),男,中国农业科学院农业环境与可持续发展研究所研究员。...
  9. 【算法】异或 偶数数组中找到一个唯一奇数
  10. 正则表达式 Tricks
  11. js setInterval() 用法示例
  12. 20160220 - JavaScript for OS X Automation 调试技巧
  13. MacOS Monterey 12.3 (21E30) OC 0.7.9 / Cl 5145 / PE 三分区原版黑苹果镜像
  14. 新员工入职表_基于APortal框架搭建员工入职培训平台
  15. Drozer的安装和使用教程(入门)
  16. 迅雷 华为 手机 php,荣耀路由Pro怎么用手机远程下载迅雷任务
  17. C++查詢wry.dat中的IP地址信息
  18. C#Assembly详解
  19. Atmel at91rm9200的armlinux的bootloader启动代码分析
  20. K8S在centeros中的部署

热门文章

  1. opic4:Qt入门之常用qt控件认知之Button系列
  2. 关系图谱---西方(上帝、耶和华、耶稣、圣母玛利亚、亚当、夏娃)and 东方(盘古、伏羲、女娲、炎帝、黄帝)
  3. iphone 3.1.2开发环境搭建——linux平台
  4. 读《臧圩人的Java面试题解惑系列》
  5. 超市收银系统服务器搭建教程,超市收银系统快速收银步骤? 你需要学习了
  6. 都才40出头,近一个月已有至少5名优秀青年学者英年早逝!健康不容忽视
  7. 【美萍超市管理系统】汉码盘点机无缝对接 金蝶盘点机条码数据采集器智能终端PDA
  8. python另存为快捷键_Python学习之pycharm的快捷键大全
  9. automotive industry is embracing change and agile transitioning
  10. tomcat系列-04-启用APR