java 文件解压缩zip_java解压缩zip文件
/*
提供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文件相关推荐
- java解压两层zip文件_Java解压缩zip - 解压缩多个文件或文件夹实例
java解压缩zip - 多个文件(包括文件夹),具体如下: 对多个文件和文件夹进行压缩,对复杂的文件目录进行解压. 压缩方法使用的是可变参数,可以压缩1到多个文件..可以写数组的方式或者一个个写到参 ...
- 使用python解压缩rar、zip文件
使用python解压缩rar.zip文件 1 解压缩rar文件 步骤 (1) 导入 unrar 模块:pip install unrar (2) 下载 unrar library 并按照默认安装路径安 ...
- python怎么解压rar文件_用Python解压缩rar、zip文件的方法
玩蛇网本文为大家提供关于用Python解压缩rar.zip文件的方法源码.Python语言对文件方面的处理还是很方便的,例如以前有为大家介绍过Python读取分割压缩TXT文本文件的方法.Python ...
- 将文件夹压缩成zip文件
一 代码 package ZipFile;import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUt ...
- php将文件夹打包zip文件,php将文件夹打包成zip文件
php将文件夹打包成zip文件:function addFileToZip($path,$zip){ $handler=opendir($path); //打开当前文件夹由$path指定. while ...
- Python压缩新文件到已有ZIP文件
本文要点在于使用Python标准库zipfile创建压缩文件时,如果使用'a'模式时,可以追加新内容. from zipfile import ZipFile from os import listd ...
- php 文件夹打包_php将文件夹打包成zip文件
php将文件夹打包成zip文件:function addFileToZip($path,$zip){ $handler=opendir($path); //打开当前文件夹由$path指定. while ...
- linux 解压文件夹下所有zip文件
解压上述文件. find . -name '*.zip' # 查看当前文件夹下所有zip文件 cd zip文件的父级文件夹目录 unzip '*.zip' # 运行此命令即可 还有一种方法, 直接使用 ...
- java zip 替换文件_替换一个Zip文件而不解压缩在Java
我有一个zip文件,我想用另一个文件替换它里面的一个文件.因此,不需要删除zip条目,只需将zip条目的文件替换为另一个条目即可.替换一个Zip文件而不解压缩在Java 这是我试过的. public ...
最新文章
- 仅凭一部iPhone手机,打造现实版元宇宙
- 第二章:深入C#数据类型
- Vue iView Admin 动态路由菜单加载 前后端分离(springboot 2.x iview admin vue 前后端分离 模型设计器 动态数据权限...
- python函数的万能参数
- mysql授权用户主机_MySQL用户授权(GRANT)
- jquery基本操作
- twitter集成第三方登录是窗口一直出现闪退的解决方法
- 作者:孙忠富(1957-),男,中国农业科学院农业环境与可持续发展研究所研究员。...
- 【算法】异或 偶数数组中找到一个唯一奇数
- 正则表达式 Tricks
- js setInterval() 用法示例
- 20160220 - JavaScript for OS X Automation 调试技巧
- MacOS Monterey 12.3 (21E30) OC 0.7.9 / Cl 5145 / PE 三分区原版黑苹果镜像
- 新员工入职表_基于APortal框架搭建员工入职培训平台
- Drozer的安装和使用教程(入门)
- 迅雷 华为 手机 php,荣耀路由Pro怎么用手机远程下载迅雷任务
- C++查詢wry.dat中的IP地址信息
- C#Assembly详解
- Atmel at91rm9200的armlinux的bootloader启动代码分析
- K8S在centeros中的部署
热门文章
- opic4:Qt入门之常用qt控件认知之Button系列
- 关系图谱---西方(上帝、耶和华、耶稣、圣母玛利亚、亚当、夏娃)and 东方(盘古、伏羲、女娲、炎帝、黄帝)
- iphone 3.1.2开发环境搭建——linux平台
- 读《臧圩人的Java面试题解惑系列》
- 超市收银系统服务器搭建教程,超市收银系统快速收银步骤? 你需要学习了
- 都才40出头,近一个月已有至少5名优秀青年学者英年早逝!健康不容忽视
- 【美萍超市管理系统】汉码盘点机无缝对接 金蝶盘点机条码数据采集器智能终端PDA
- python另存为快捷键_Python学习之pycharm的快捷键大全
- automotive industry is embracing change and agile transitioning
- tomcat系列-04-启用APR