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.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
public class ZipFile {
public static void main(String[] args) {
}
/**
* 文件压缩
* files:要压缩的文件
* destZip:压缩之后的zip文件所放的目录,需要"D:\\"或"D:\\test\"格式
* */
public static void zip(String[] files, String destZip) throws IOException {
FileOutputStream fos = new FileOutputStream(destZip);
BufferedOutputStream bos = new BufferedOutputStream(fos);
ZipOutputStream zos = new ZipOutputStream(bos);
//循环读文件,压缩到zip中
for (int i = 0; i < files.length; i++) {
String file = files[i];
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
//获取文件名,创建条目并添加到zip中
File f = new File(file);
ZipEntry zl = new ZipEntry(f.getName());
zos.putNextEntry(zl);
//读取文件中的字节信息,压入条目
int tmp = -1;
while ((tmp = bis.read()) != -1) {
zos.write(tmp);
}
zos.closeEntry();
bis.close();
fis.close();
}
zos.close();
bos.close();
fos.close();
}
/**
* 文件解压缩
* zipfile:要解压缩的zip文件
* destpah:解压后文件所放的目录,需要"D:\\"或"D:\\test\"格式
* */
public static void unzip(String zipfile, String destpath) throws IOException {
FileInputStream fis = new FileInputStream("C:\\a.zip");
ZipInputStream zis = new ZipInputStream(fis);
ZipEntry zl = null;
while ((zl = zis.getNextEntry()) != null) {
if (zl.isDirectory()) {
File f = new File("C:\\" + zl.getName());
f.mkdirs();
} else {
String file = zl.getName();
FileOutputStream fos = new FileOutputStream(destpath + file);
int tmp = -1;
while ((tmp = zis.read()) != -1) {
fos.write(tmp);
}
zis.closeEntry();
fos.close();
}
}
zis.close();
}
/**
* 压缩目录
* zipFileName:压缩后zip文件的路径
* inputFile:需要压缩的源目录
* */
public void zip(String zipFileName,String inputFile)throws Exception{
File file =new File(inputFile);
ZipOutputStream out =new ZipOutputStream(new FileOutputStream(zipFileName));
zip(out,file,"");
System.out.println("zip done");
out.close();
}
//递归遍历子目录和文件,进行压缩
private void zip(ZipOutputStream out, File f, String base) throws Exception{
System.out.println("Zipping"+f.getName());
if(f.isDirectory()){
File[] fl=f.listFiles();
out.putNextEntry(new ZipEntry(base+"/"));
base = base.length()==0?"":base+"/";
for(int i=0;i<fl.length;i++){
zip(out,fl[i],base+fl[i].getName());
}
}else{
out.putNextEntry(new ZipEntry(base));
FileInputStream in =new FileInputStream(f);
int b;
while((b=in.read())!=-1){
out.write(b);
in.close();
}
}
}
/**
* 解压缩目录
* zipFileName:需要解压缩的zip文件
* outputDirectory:解压缩后文件所放路径
* */
public void unzip2(String zipFileName,String outputDirectory) throws Exception{
ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));
ZipEntry z;
while((z=in.getNextEntry())!=null){
System.out.println("unziping:"+z.getName());
if(z.isDirectory()){
String name=z.getName();
name=name.substring(0,name.length()-1);
File f=new File(outputDirectory+File.separator+name);
f.mkdirs();
System.out.println("mkdirs:"+outputDirectory+File.separator+name);
}else{
File f=new File(outputDirectory+File.separator+z.getName());
f.createNewFile();
FileOutputStream out=new FileOutputStream(f);
int b;
while((b=in.read())!=-1){
out.write(b);
}
out.close();
}
}
in.close();
}
}
分享到:
相关推荐
功能 : 将目录SrcPath里的所有文件(子目录)添加到压缩文档ZipFile 参数 : SrcPath 待压缩目录(全路径) Zipfile 目标文件(全路径) 返回 : 失败 >0 成功 说明 : 同名文件将自动被替换(overwrite) 解压文件...
一款实用 python 的 zipfile 库写的加压缩软件,可以对文件,文件夹进行解压压缩 注意:本软件不支持中文为路径名的解压缩,所以建议使用英文命名的目录和文件
python代码实现pj zip解压缩文件 zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的 zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝...
本文通俗易懂地介绍了Python中的ZIP解压缩操作,涵盖了解压缩的必要性、基本思路以及利用zipfile模块的具体代码实现,既解析了概念,也配合示例讲解了实践操作,全面而细致地讲解了ZIP解压缩的相关知识。 适合人群: ...
使用Java核心API实现单文件/多文件/整个目录的压缩/解压缩功能,由于自带API(1.6)不支持指定编码方式,因此中文会出现乱码(1.7貌似已经支持指定编码方式),所以还写了一个基于ant包的压缩/解压缩代码。
Java实现压缩与解压缩ZIP import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream;...
Oracle P/L SQL实现文件压缩、解压功能,以下是此过程包的头部,包体经常打包处理plb,感兴趣用户可以下载下来。 Create or Replace Package UTL_ZIP AUTHID CURRENT_USER as Type File_List is Table of Clob; -...
在Java中通过ZipFile解析Android apk 压缩文件,获取版本号等信息,获取的manifest文件格式无法识别为xml,导致无法解析,该jar文件用来处理乱码文件,apk压缩文件解压缩乱码问题
一、文件压缩,是很有必要的,我们在进行文件,传输过程中,很多时候都是,都是单个文件单个文件发送接收,但是当数据量特别大,或者文件数量比较多的时候,这个时候就可以考虑文件压缩。 二、优势:文件压缩过后,...
zip4j默认采用UTF-8编码,所以它支持中文,同时也支持密码,而且支持多种压缩算法,可以说功能强大,但使用起来却非常简单,当然,如果需求比较...如果你仅仅是简单地解压一个zip压缩文件,那么只需要简单地几步即可。
*** 解压缩文件 *** *** *** ************************************************** 1. Function MyZip_ExtractFileAll(ZipFile,PathName:pchar):integer;stdcall; 功能 : 将ZipFile中包含的所有文件解包...
c# 解压缩文件或文件夹代码 c# 解压缩文件或文件夹代码 可设置压缩密码
单个文件、多个文件压缩 /** * 使用给定密码压缩指定文件或文件夹到指定位置. * * dest可传最终压缩文件存放的绝对路径,也可以传存放目录,也可以传null或者"". * 如果传null或者""则将压缩文件存放在当前...
应用SharpCompress0.22开源包进行文件的解压缩(zip,rar文件),已处理中文乱码问题,例子很基础.源码环境 VS2017 15.3 .
本文实例讲述了Python实现压缩文件夹与解压缩zip文件的方法。分享给大家供大家参考,具体如下: 直接上代码 #coding=utf-8 #甄码农python代码 #使用zipfile做目录压缩,解压缩功能 import os,os.path import ...
本文实例讲述了Android实现zip文件压缩及解压缩的方法。分享给大家供大家参考。具体如下: DirTraversal.java如下: package com.once; import java.io.File; import java.util.ArrayList; import java.util....
从别的地方转载的,挺不错的!
用C#实现的文件 批量解压并对文件重命名 一个压缩文件中只有一个文件 并把文件名替换为压缩包得名字。 大家可以在此基础上进行更改。有问题 请联系 whutstone@126.com
好久以前的了,可能有点乱,见谅哈,压缩解压缩zip大概是Test9和ZipFile这两个类,然后Test9里也可以 解压rar,但是压缩文件为rar只能调用系统命令咯 另OfficeToHtml是实现word,ppt,excel转html的功能,是用jacob...
使用ZLIB库 包装的压缩解压缩文件的源码 VS2005 工程创建 /* */ class ZIPWRAP_EXP CZipper { public: CZipper(); virtual ~CZipper(); // simple interface static bool ZipFile(const char* szFilePath...