正确的 zip 压缩与解压代码
来源:互联网 发布:淘宝卖家怎么免费提现 编辑:程序博客网 时间:2024/05/16 12:27
网上流传的zip压缩与解压 的代码有很大的问题 虽然使用了ant进行压缩与解压,但是任务的流程还是用的java.util.zip 的方式写的,我在使用的过程中遇到了压缩的目录结构有误,甚至出现不同解压软件显示的目录结构不同的窘境。
下面给出使用org.apache.tools.ant.taskdefs.Zip;和org.apache.tools.ant.taskdefs.Expand 的压缩和解压过程。
import java.io.File;import org.apache.tools.ant.BuildException;import org.apache.tools.ant.Project;import org.apache.tools.ant.taskdefs.Expand;import org.apache.tools.ant.taskdefs.Zip;import org.apache.tools.ant.types.FileSet;public class Zipper {public final static String encoding = "GBK";// 压缩public static void zip(String srcPathname, String zipFilepath)throws BuildException, RuntimeException {File file = new File(srcPathname);if (!file.exists())throw new RuntimeException("source file or directory "+ srcPathname + " does not exist.");Project proj = new Project();FileSet fileSet = new FileSet();fileSet.setProject(proj);// 判断是目录还是文件if (file.isDirectory()) {fileSet.setDir(file);// ant中include/exclude规则在此都可以使用// 比如:// fileSet.setExcludes("**/*.txt");// fileSet.setIncludes("**/*.xls");} else {fileSet.setFile(file);}Zip zip = new Zip();zip.setProject(proj);zip.setDestFile(new File(zipFilepath));zip.addFileset(fileSet);zip.setEncoding(encoding);zip.execute();}// 解压缩public static void unzip(String zipFilepath, String destDir)throws BuildException, RuntimeException {if (!new File(zipFilepath).exists())throw new RuntimeException("zip file " + zipFilepath+ " does not exist.");Project proj = new Project();Expand expand = new Expand();expand.setProject(proj);expand.setTaskType("unzip");expand.setTaskName("unzip");expand.setEncoding(encoding);expand.setSrc(new File(zipFilepath));expand.setDest(new File(destDir));expand.execute();}public static void main(String []args){unzip("D:\\123.zip","D:\\123");zip("D:\\upload","D:\\upload.zip");}}
0 0
- 正确的 zip 压缩与解压代码
- zip 的 压缩与解压
- 用java代码实现文件的zip压缩与解压
- ZIP压缩与解压
- java zip文件的压缩与解压
- Linux zip包的压缩与解压
- C++ zip文件的解压与压缩
- php zip文件的解压与压缩
- C++ zip文件的解压与压缩
- 简单的Zip压缩与解压
- iPhone zip压缩与解压
- iPhone zip压缩与解压
- iPhone zip压缩与解压
- iPhone zip压缩与解压
- iPhone zip压缩与解压
- java zip 压缩与解压
- 文件zip压缩与解压
- unity-zip压缩与解压
- GitHub使用elasticsearch遇到的一些问题及解决方法
- hdu-2066 一个人的旅行
- 程序员之路,怎么走?
- HTMLParser使用详解(2)- Node内容
- 热门应用借微信玩花样:一大波红包正在来袭
- 正确的 zip 压缩与解压代码
- 链式队列的操作实现
- Android 搜索功能
- uva 11133 - Eigensequence(dp)
- No provisioned iOS devices are available with a compatible iOS version. Connect an iOS device with a
- 百度位置获取(zj)
- HTMLParser使用详解(3)- 通过Filter访问内容
- Python 编程规范
- php 数组和字符串的转化