Java 使用 org.apache.tools.zip.* 压缩文件源代码
来源:互联网 发布:惠普工作站笔记本 知乎 编辑:程序博客网 时间:2024/06/05 11:53
Java 使用 org.apache.tools.zip.* 压缩/解压缩文件源代码
Java 使用 org.apache.tools.zip.* 压缩/解压缩文件的源代码。本源码支持中文路径和中文文件名;解决了压缩后有一个多余同名文件夹的 bug、压缩后用 7-zip 打开时根目录下的文件名前有“\”的 bug。
package com.defonds.cds.util;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;public class AntZipUtil {public static void zipFile(String zipFileName, String inputFileName)throws Exception {org.apache.tools.zip.ZipOutputStream out = new org.apache.tools.zip.ZipOutputStream(new FileOutputStream(zipFileName));out.setEncoding("GBK");File inputFile = new File(inputFileName);zipIt(out, inputFile, "", true);out.close();}/* * 能支持中文的压缩 参数base 开始为"" first 开始为true */public static void zipIt(org.apache.tools.zip.ZipOutputStream out, File f,String base, boolean first) throws Exception {if (f.isDirectory()) {File[] fl = f.listFiles();if (first) {first = false;} else {base = base + "/";}for (int i = 0; i < fl.length; i++) {zipIt(out, fl[i], base + fl[i].getName(), first);}} else {if (first) {base = f.getName();}out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));FileInputStream in = new FileInputStream(f);int b;while ((b = in.read()) != -1) {out.write(b);}in.close();}}public static void unZipFile(String unZipFileName, String unZipPath)throws Exception {org.apache.tools.zip.ZipFile zipFile = new org.apache.tools.zip.ZipFile(unZipFileName);unZipFileByOpache(zipFile, unZipPath);}/* * 解压文件 unZip为解压路径 */public static void unZipFileByOpache(org.apache.tools.zip.ZipFile zipFile,String unZipRoot) throws Exception, IOException {java.util.Enumeration e = zipFile.getEntries();org.apache.tools.zip.ZipEntry zipEntry;while (e.hasMoreElements()) {zipEntry = (org.apache.tools.zip.ZipEntry) e.nextElement();InputStream fis = zipFile.getInputStream(zipEntry);if (zipEntry.isDirectory()) {} else {File file = new File(unZipRoot + File.separator+ zipEntry.getName());File parentFile = file.getParentFile();parentFile.mkdirs();FileOutputStream fos = new FileOutputStream(file);byte[] b = new byte[1024];int len;while ((len = fis.read(b, 0, b.length)) != -1) {fos.write(b, 0, len);}fos.close();fis.close();}}}public static void main(String[] args) throws Exception {zipFile("d:/temp/folders.zip", "D:/temp/folders");//压缩入口//unZipFile("d:/javaFile.zip","e:/");//解压入口}}
- Java 使用 org.apache.tools.zip.* 压缩文件源代码
- 使用org.apache.tools.zip压缩文件
- org.apache.tools.ant.taskdefs.Zip实现压缩文件功能
- android通过org.apache.tools.zip解压zip压缩文件,支持中文名
- java 使用org.apache.tools.zip实现zip压缩和解压
- 使用org.apache.tools.zip实现zip压缩和解压
- 使用org.apache.tools.zip实现zip压缩和解压
- 使用org.apache.tools.zip实现zip压缩和解压
- 使用org.apache.tools.zip实现zip压缩和解压
- 使用org.apache.tools.zip实现zip压缩和解压
- 使用org.apache.tools.zip实现zip压缩和解压
- 用java实现zip压缩解压缩(org.apache.tools.zip)
- org.apache.tools.zip 压缩与解压 (java zip)
- org.apache.tools.zip在Linux下压缩文件中文乱码问题解决
- 基于apache.tools.zip压缩文件(夹)
- java压缩与解压缩(2)使用org.apache.tools.zip
- 使用org.apache.tools.zip包来压缩解压缩文件。
- scala使用org.apache.tools.zip压缩包
- 去掉复制代码之前行号的小技巧
- Sql server 2000 连接测试
- 深入理解JavaScript定时机制
- Ascii码表
- Java下的单例模式 静态导入实现
- Java 使用 org.apache.tools.zip.* 压缩文件源代码
- <与>的用法
- 用gdb+nm调试php c extension程序
- MySQL数据库服务器逐渐变慢分析与解决
- 对拷贝构造函数与operator=的理解
- Oracle删除重复记录oracle 删除重复记录的高效方法 && mysql 删除重复记录方法
- ELF(Executable and Linkable Format) 介绍
- 在对话框上加载图标或者位图
- 通达OA 需要二次开发的朋友看过来