正确 zip 压缩和解压码

网上流传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");
	}
}

版权声明:本文博客原创文章。博客,未经同意,不得转载。

时间: 2024-11-04 23:48:53

正确 zip 压缩和解压码的相关文章

Xceed Zip压缩和解压控件Xceed Zip Compression Library

Xceed Zip Compression Library 是一个高性能的 Zip 和 Unzip 数据压缩ActiveX控件.通过它,可以创建和操作与Zip文件,也能在内存中直接压缩/解压数据.它设计提供高度灵活性,并且使用快速的多线程 zip 压缩引擎. 具体功能: ActiveX 技术 ATL 3.0编写,简单且独立的 COM 对象和 ActiveX 控件. 无须外部的压缩动态链接库, MFC DLL 或运行库等. 同时有单线程 (STA) 和多线程 (MTA) 模型设计. 不必将组件置于

java zip压缩和解压(支持中文)

package com.xeon.mis.utils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.util.Enumeration; impor

linux zip压缩和解压的各种操控

1.把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩mydata目录 2.把/home目录下面的mydata.zip解压到mydatabak目录里面 unzip mydata.zip -d mydatabak 3.把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip zip -r abc123.zip abc 123.txt 4.把/home目录下面的wwwroot.zip直接解压到/home目录

Zip 压缩和解压技术在 HTML5 中的应用

JSZip 是一款可以创建.读取.修改 .zip 文件的 javaScript 工具.在 web 应用中,免不了需要从 web 服务器中获取资源,如果可以将所有的资源都合并到一个 .zip 文件中,这时候只需要做一次请求,这样既减少了服务器的压力,同时也可以加快 web 应用的呈现速度. 今天就来探讨下 JSZip 如何与 HT 应用结合.先来看看这期 Demo 的效果图: 第一步.需要将应用对相关资源打包成 .zip 文件, 这是我要压缩的文件列表,把响应的资源文件存放到对应的文件夹下,然后在

zip压缩和解压缩

Zipachieve第三方框架下载地址: https://code.google.com/archive/p/ziparchive/downloads 1.下载完成后解压,将文件拉入项目中,这是可能会报错: 2.添加libz.1.2.5.tbd,此时运行一下,要是仍然有错可能是ARC的问题,修改不兼容ARC(-fno-objc-arc): 3.上代码: 下载一个zip文件: NSURL *url=[NSURL URLWithString:@"http://192.168.1.102:8080/z

简单的zip压缩和解压缩

其实像这样的php拓展很多,只是项目中没怎么用到: <?php $zip = new ZipArchive(); $filename = "./test112.zip"; //以不存在就创建的模式打开压缩包 if($zip->open($filename, ZIPARCHIVE::CREATE) !== TRUE){ exit("cannot open $filename \n"); }else{ //echo "可以打开"; //像

Java用ZIP格式压缩和解压缩文件

转载:java jdk实例宝典 感觉讲的非常好就转载在这保存! java.util.zip包实现了Zip格式相关的类库,使用格式zip格式压缩和解压缩文件的时候,须要导入该包. 使用zipoutputstream能够实现文件压缩,全部写入到zipoutputstream输入流中的数据,都会被ZIP格式压缩. 每一个被压缩的文件或者文件夹在zip文件里都相应一个zipentry对象,每一个zipentry都有一个name属性,表示它相对于zip文件文件夹的相对路径,对于文件夹,路径以“/“结尾,对

gz、tar、zip、bz2压缩和解压缩命令

gzip 压缩后的格式为:*.gz 这种压缩方式不能保存原文件:且不能压缩目录 命令举例:#压缩[[email protected] tmp]# gzip buodo[[email protected] tmp]# lsbuodo.gz#解压[[email protected] tmp]# gunzip buodo.gz[[email protected] tmp]# lsbuodo tar 命令选项:-z(gzip) 用gzip来压缩/解压缩文件-j(bzip2) 用bzip2来压缩/解压缩文

2015/03/27 &nbsp; 压缩和解包

一.gzip压缩和解包 1. 压缩; [[email protected] ~]# gzip 2.txt 2. 解包; [[email protected] ~]# gzip -d 2.txt.gz 3. 查看包压缩的内容; [[email protected] ~]# zcat 1.txt.gz 二.bzip压缩和解包 1. 压缩; [[email protected] ~]# bzip2 2.txt 2. 解包; [[email protected] ~]# bzip2 -d 2.txt.b