import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Date; import java.util.zip.CRC32; import java.util.zip.CheckedOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import java.util.zip.ZipOutputStream; /** * zip压缩文件的工具类 * * @author lxp * */ public final class ZipUtil { private static final int BUFFER = 8192; /** * 把一组文件压缩成一个zip包 * * @param deleteSrcFile * 压缩后是否删除源文件 * @param decFile * 目标文件,如data.zip * @param srcFile * n个源文件 * @throws IOException */ public static void compressFile(boolean deleteSrcFile, String decFile, String... srcFile) throws IOException { ZipOutputStream out = null; try { if (decFile == null || decFile == "") { throw new IllegalArgumentException("decFile 不能为空"); } File descFile = new File(decFile); FileOutputStream fileOutputStream = new FileOutputStream(descFile); CheckedOutputStream cos = new CheckedOutputStream(fileOutputStream, new CRC32()); out = new ZipOutputStream(cos); for (String f : srcFile) { File file = new File(f); if (file.exists()) { BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); ZipEntry entry = new ZipEntry(file.getName()); out.putNextEntry(entry); int count; byte data[] = new byte[BUFFER]; while ((count = bis.read(data, 0, BUFFER)) != -1) { out.write(data, 0, count); } bis.close(); if (deleteSrcFile) { file.delete(); } } } out.close(); descFile.setLastModified(new Date().getTime()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); if(out != null){ out.close(); } throw e; } } /** * 解压zip * @param zipfile zip文件路径 * @param extdir 解压目录 */ public static void unzipFile(String zipfile,String extdir){ File f = new File(zipfile); if(null==extdir){ extdir=f.getParent(); } File ext = new File(extdir); if(!ext.exists()){ ext.mkdirs(); } try { FileInputStream fi = new FileInputStream(f); ZipInputStream zipInput = new ZipInputStream(fi); ZipEntry zip = zipInput.getNextEntry(); while(zip!=null){ File fo = new File(extdir+zip.getName()); makedirs(fo); FileOutputStream fout = new FileOutputStream(fo); byte inbuf[] = new byte[BUFFER]; int n = 0; while ( (n = zipInput.read(inbuf, 0, BUFFER)) != -1) { fout.write(inbuf, 0, n); } fout.close(); zip = zipInput.getNextEntry(); } zipInput.close(); fi.close(); } catch (Exception e) { e.printStackTrace(); } } private static void makedirs(File f){ File ff = new File(f.getParent()); System.out.println(f.getParent()); if(!ff.exists())ff.mkdirs(); } }
您还没有登录,请您登录后再发表评论
QT5 zip压缩和解压,支持文件夹的压缩和解压源代码,接口简洁,使用简单
自己封装的文件ZIP压缩和解压接口,调用简单方便
Zip压缩和解压文件,支持多个文件一起压缩,有测试代码,欢迎参考
该对象是使用pb对文件进行zip压缩和解压,并且将zip压缩包以流方式读取和将zip压缩包的流写入到本地文件夹的方法的封装
用C编写的Zip压缩和解压类代码 haihaoyongba
该工具支持zip的压缩和解压 1 1
C#实现zip压缩和解压帮助类
JAVA实现目录及文件的zip压缩和解压
C# Zip 压缩和解压 NET 4.5 using System.IO.Compression;
SQL Server CLR 存储过程实现数据的ZIP压缩和解压,可对表和视图里的数据进行压缩, 完全实现Zip的压缩和打包算法,不依赖磁盘上的文件。
当你的移动平台应用需要从你的服务器上下载或者上传zip资源并对zip包进行解压或者将需要上传的文件压缩成zip的话,有了它,你会笑的很灿烂的
c#zip压缩与解压c#zip压缩与解压c#zip压缩与解压c#zip压缩与解压c#zip压缩与解压
VB6.0调用 DLL版ZIP压缩文件夹目录和解压ZIP文件,网上很多源码不好用,所以就自己做了一个。原始代码是VC++的用VS2019编译了一个,DLL封装了下。调用很简单 '调用方法如下: 'CreateZipFileA "C:\123", "C:\123.zip...
java版本的zip压缩和解压程序,命令行的,没有界面,支持文件夹压缩解压
zip 文件压缩 解压源码,c++版。已测试,100%可用! // XUnzip.cpp Version 1.3
C语言实现Zip压缩解压
java 文件zip 压缩与解压 可以直接调用
Android端zip压缩与解压,目前暂时只做zip格式支持,基于Zip4j 进行扩展成工具类,支持对单个文件,多个文件以及文件夹进行压缩,对压缩文件解压到到指定目录,支持压缩解压使用密码。
Android端zip压缩与解压,目前暂时只做zip格式支持,基于Zip4j (http://www.lingala.net/zip4j/)进行扩展成工具类,支持对单个文件,多个文件以及文件夹进行压缩,对压缩文件解压到到指定目录,支持压缩解压使用密码...
C++利用Zlib库实现zip文件压缩及解压 支持递归压缩.可配合自动更新功能实现zip压缩包进得软件更新
相关推荐
QT5 zip压缩和解压,支持文件夹的压缩和解压源代码,接口简洁,使用简单
自己封装的文件ZIP压缩和解压接口,调用简单方便
Zip压缩和解压文件,支持多个文件一起压缩,有测试代码,欢迎参考
该对象是使用pb对文件进行zip压缩和解压,并且将zip压缩包以流方式读取和将zip压缩包的流写入到本地文件夹的方法的封装
用C编写的Zip压缩和解压类代码 haihaoyongba
该工具支持zip的压缩和解压 1 1
C#实现zip压缩和解压帮助类
JAVA实现目录及文件的zip压缩和解压
C# Zip 压缩和解压 NET 4.5 using System.IO.Compression;
SQL Server CLR 存储过程实现数据的ZIP压缩和解压,可对表和视图里的数据进行压缩, 完全实现Zip的压缩和打包算法,不依赖磁盘上的文件。
当你的移动平台应用需要从你的服务器上下载或者上传zip资源并对zip包进行解压或者将需要上传的文件压缩成zip的话,有了它,你会笑的很灿烂的
c#zip压缩与解压c#zip压缩与解压c#zip压缩与解压c#zip压缩与解压c#zip压缩与解压
VB6.0调用 DLL版ZIP压缩文件夹目录和解压ZIP文件,网上很多源码不好用,所以就自己做了一个。原始代码是VC++的用VS2019编译了一个,DLL封装了下。调用很简单 '调用方法如下: 'CreateZipFileA "C:\123", "C:\123.zip...
java版本的zip压缩和解压程序,命令行的,没有界面,支持文件夹压缩解压
zip 文件压缩 解压源码,c++版。已测试,100%可用! // XUnzip.cpp Version 1.3
C语言实现Zip压缩解压
java 文件zip 压缩与解压 可以直接调用
Android端zip压缩与解压,目前暂时只做zip格式支持,基于Zip4j 进行扩展成工具类,支持对单个文件,多个文件以及文件夹进行压缩,对压缩文件解压到到指定目录,支持压缩解压使用密码。
Android端zip压缩与解压,目前暂时只做zip格式支持,基于Zip4j (http://www.lingala.net/zip4j/)进行扩展成工具类,支持对单个文件,多个文件以及文件夹进行压缩,对压缩文件解压到到指定目录,支持压缩解压使用密码...
C++利用Zlib库实现zip文件压缩及解压 支持递归压缩.可配合自动更新功能实现zip压缩包进得软件更新