org.apache.ant实现压缩和解压
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant</artifactId>
- <version>1.9.7</version>
- </dependency>
Java
- 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";
- /**
- * 压缩文件和文件夹
- *
- * @param srcPathname 需要被压缩的文件或文件夹路径
- * @param zipFilepath 将要生成的zip文件路径
- * @throws BuildException
- * @throws RuntimeException
- */
- 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();
- System.out.println("compress successed.");
- }
- /**
- * 解压缩文件和文件夹
- *
- * @param zipFilepath 需要被解压的zip文件路径
- * @param destDir 将要被解压到哪个文件夹
- * @throws BuildException
- * @throws RuntimeException
- */
- 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();
- System.out.println("uncompress successed.");
- }
- }
org.apache.ant实现压缩和解压的更多相关文章
- java实现文件的压缩和解压
java实现文件的压缩和解压 代码压缩实现 package com.hjh.demo.zip; import java.io.BufferedInputStream; import java.io.F ...
- hadoop压缩和解压
最近有一个hadoop集群上的备份需求.源文件有几百G,如果直接复制太占用磁盘空间.将文件从hadoop集群下载到本地,压缩之后再上传到hadoop则太耗时间.于是想到能否直接在HDFS文件系统上进行 ...
- 【C#公共帮助类】WinRarHelper帮助类,实现文件或文件夹压缩和解压,实战干货
关于本文档的说明 本文档使用WinRAR方式来进行简单的压缩和解压动作,纯干货,实际项目这种压缩方式用的少一点,一般我会使用第三方的压缩dll来实现,就如同我上一个压缩类博客,压缩的是zip文件htt ...
- C#文件或文件夹压缩和解压方法(通过ICSharpCode.SharpZipLib.dll)
我在网上收集一下文件的压缩和解压的方法,是通过ICSharpCode.SharpZipLib.dll 来实现的 一.介绍的目录 第一步:下载压缩和解压的 ICSharpCode.SharpZipLib ...
- java 文件压缩和解压(ZipInputStream, ZipOutputStream)
最近在看java se 的IO 部分 , 看到 java 的文件的压缩和解压比较有意思,主要用到了两个IO流-ZipInputStream, ZipOutputStream,不仅可以对文件进行压缩,还 ...
- C#实现通过Gzip来对数据进行压缩和解压
C#实现通过Gzip来对数据进行压缩和解压 internal static byte[] Compress(byte[] data) { using (var compressedStream = n ...
- linux常用命令:4文件压缩和解压命令
文件压缩和解压命令 压缩命令:gzip.tar[-czf].zip.bzip2 解压缩命令:gunzip.tar[-xzf].unzip.bunzip2 1. 命令名称:gzip 命令英文原意:GNU ...
- .net文件压缩和解压及中文文件夹名称乱码问题
/**************************注释区域内为引用http://www.cnblogs.com/zhaozhan/archive/2012/05/28/2520701.html的博 ...
- linux下文件加密压缩和解压的方法
一.用tar命令 对文件加密压缩和解压 压缩:tar -zcf - filename |openssl des3 -salt -k password | dd of=filename.des3 此命 ...
随机推荐
- appium + python 自动化调试手机时 UiAutomator exited unexpectedly with code 0, signal null
放上appium报错图,appium在手机里安装了appium setting 和unlock 软件,输入法也被变成了appium input ,但是就是点不到目标软件,手机也可以被cmd adb ...
- POJ 1584 /// 判断圆(点)在多边形内 判断凸包
题目大意: 给定n,n边形 给定圆钉的 半径r 和圆心(x,y) 接下来n行是n边形的n个顶点(顺时针或逆时针给出) 判断n边形是否为凸包 若不是输出 HOLE IS ILL-FORMED 判断圆心和 ...
- POJ - 2774~POJ - 3415 后缀数组求解公共字串问题
POJ - 2774: 题意: 求解A,B串的最长公共字串 (摘自罗穗骞的国家集训队论文): 算法分析: 字符串的任何一个子串都是这个字符串的某个后缀的前缀. 求 A 和 B 的最长 公共子串等价于求 ...
- 18-1-函数中this的指向
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- login-Linux必学的60个命令
1.作用 login的作用是登录系统,它的使用权限是所有用户. 2.格式 login [name][-p ][-h 主机名称] 3.主要参数 -p:通知login保持现在的环境参数. -h:用来向远程 ...
- mysql模糊查询特殊字符(\,%和_)处理
/** * sql模糊查询特殊字符(\,%和_)处理 * * @param string $str * @return string */ public static function like_se ...
- JUC 一 Callable
java.util.concurrent.Callable是一个泛型接口,只有一个call()方法 Callable和Runnable的区别 Callable使用call()方法,Runnable使用 ...
- synchronized ReentrantLock 比较分析
在编写多线程代码的时候,对于不允许并发的代码,很多需要加锁进行处理.在进行加锁处理时候,synchronized作为java的内置锁,同时也是java关键字,最为被人熟知,即使是最初级的java程序员 ...
- 深入浅出 Java Concurrency (26): 并发容器 part 11 Exchanger[转]
可以在对中对元素进行配对和交换的线程的同步点.每个线程将条目上的某个方法呈现给 exchange 方法,与伙伴线程进行匹配,并且在返回时接收其伙伴的对象.Exchanger 可能被视为 Synchro ...
- Java笔记 - 输入输出流
java.io包中定义了各式各样的"流(stream)" 类型(类或抽象类),通过标准的方法实现对于数据的输入/输出操作. 一.流类型分类 以从不同的角度对其进行分类:按数据流的方 ...