写在前面的话:使用ANT中的压缩功能在很多文章中都有,但是只能压缩指定目录的全部文件或者文件夹,在项目中,经常有这样的需求:只压缩指定目录的部分文件夹, 用过ant.xml 的人都很容易想到 fileset 的子属性: exclude 和 include , 看了一下ant的源码 , 其对应的类就是各种的selector , 所以简单尝使了两种selector 实现了上面所说的功能,具体代码如下.
可能大家会问, 为什么不把要压缩的文件拷贝到一个文件夹, 再压缩, 是因为我很怵文件的读写, 总感觉文件读写万一处理不好效率会有很大的影响, 把工作交给ANT比较放心.
其实, ANT的设计相当优雅,有时间真得应该拜读一下源码.
第一种:只能选择指定目录的一个文件夹.
public static void main(String[] args) {
try {
Project prj = new Project();
Zip zip = new Zip();
zip.setProject(prj);
zip.setDestFile(new File("d:\\a.zip"));
String src1 = "D:\\evidence\\20120806\\";
File src = new File(src1);
FileSet fileSet = new FileSet();
fileSet.setProject(prj);
if (src.isFile()) {
fileSet.setFile(src);
} else {
fileSet.setDir(src);
}
/**
* <pre>
* 目标:打包时只选指定目录的文件夹A和文件夹B,对于下面的程序来讲,"79个..."和"过年写的.."就是指两个文件夹.
* 方法:为fileSet添加两个FilenameSelector
* 实现效果:只会把第一个加入的FilenameSelector打包,第二个不会.
* 总结:打包目录全部的文件夹,只需在文件名后面加"/**\/*"
* </pre>
*/
FilenameSelector a = new FilenameSelector();
a.setName("79个不可不知的生活潜规则_2012080617154683/**/*");
FilenameSelector b = new FilenameSelector();
b.setName("过年写的几篇家乡小吃片段_2012080617154651/**/*");
fileSet.addFilename(b);
fileSet.addFilename(a);
zip.addFileset(fileSet);
zip.execute();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
第二种:可以选择指定目录的N个子文件夹.
public static void main(String[] args) {
try {
Project prj = new Project();
Zip zip = new Zip();
zip.setProject(prj);
zip.setDestFile(new File("d:\\a.zip"));
String src1 = "D:\\evidence\\20120806\\";
File src = new File(src1);
FileSet fileSet = new FileSet();
fileSet.setProject(prj);
if (src.isFile()) {
fileSet.setFile(src);
} else {
fileSet.setDir(src);
}
/**
* <pre>
* 目标:打包时只选指定目录的文件夹A和文件夹B,对于下面的程序来讲,"79个..."和"过年写的.."就是指两个文件夹.
* 方法:为fileSet添加OrSelector,在OrSelector中添加两个FilenameSelector
* 实现效果:实现目标
* </pre>
*/
FilenameSelector a = new FilenameSelector();
a.setName("79个不可不知的生活潜规则_2012080617154683/**/*");
FilenameSelector b = new FilenameSelector();
b.setName("过年写的几篇家乡小吃片段_2012080617154651/**/*");
OrSelector or = new OrSelector();
or.addFilename(a);
or.addFilename(b);
fileSet.addOr(or);
zip.addFileset(fileSet);
zip.execute();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
分享到:
相关推荐
【描述】"sun-java6-jdk的安装包" 暗示了这个压缩文件是为了在计算机系统上安装Java 6开发环境而设计的。JDK 6是Java平台的一个重要版本,包含了Java运行时环境(JRE)以及用于构建和测试Java程序的各种工具。此外,...
标题中的"jdk-1.7-java-7-openjdk-amd64.zip"表明这是一个Java开发工具包(JDK)的压缩文件,版本为1.7,适用于AMD64架构的Linux系统。OpenJDK是Java Development Kit的一个开源实现,由Oracle公司支持并维护。这个...
1. 解压缩下载的zip文件,找到“jdk-8u181-windows-x64.exe”。 2. 双击运行安装程序,按照向导提示进行安装。一般会选择默认的安装路径,但也可以根据需要自定义。 3. 在安装过程中,可以选择是否安装公共JRE(Java...
1. **下载**:首先,你需要从Oracle官方网站或者通过提供的链接(blog.csdn.net/FL1623863129/article/details/134426730)下载适用于Linux x64的`java-jdk1.8-jdk-8u202-linux-x64.zip`压缩文件。确保文件完整无损...
Java 8 开发工具包(Java Development Kit,简称JDK)是Java编程语言的重要组成部分,它包含了一系列用于开发和运行Java应用程序的工具。OpenJDK 是一个开源版本的 JDK,由 Oracle 公司主导并维护,它遵循GNU ...
Java-JDK1.8-windows-x64位——免费不要积分!!! Java-JDK1.8-windows-x64位——免费不要积分!!! Java-JDK1.8-windows-x64位——免费不要积分!!! Java-JDK1.8-windows-x64位——免费不要积分!!! Java-JDK...
2. 解压后,你会得到一个名为`jdk-8u192-linux-x64.tar.gz`的文件,使用`tar -zxvf jdk-8u192-linux-x64.tar.gz`命令将其解压到指定目录。 3. 接着,需要将JDK的安装路径添加到系统的`PATH`和`JAVA_HOME`环境变量中...
这个压缩包文件“java-jdk1.8-jdk-8u191-linux-x64.zip”包含了用于在64位Linux系统上安装和使用的JDK 1.8更新191的所有必要组件。JDK(Java Development Kit)是开发和运行Java应用程序的基础,它包括了Java编译器...
1. **上传文件**:首先,你需要将`jdk-8u202-linux-x64.tar.gz`文件从本地机器通过FTP、SCP或类似工具上传到CentOS服务器的指定目录,例如 `/opt/downloads`。这一步确保了JDK的安装文件在服务器上可用。 2. **解压...
描述中提到"安装方式:双击安装即可",这意味着用户在Windows环境下只需简单地双击解压后的"jdk-8u192-windows-x64.exe"文件,就可以启动安装过程。这个.exe文件是一个可执行程序,会引导用户完成安装向导,包括选择...
1. 解压缩"java-jdk1.6-jdk-6u45-windows-x64.zip"文件,这将释放出"jdk-6u45-windows-x64.exe"可执行文件。 2. 双击运行"jdk-6u45-windows-x64.exe",安装向导会引导你完成安装过程。通常,你需要选择安装路径,...
1. **下载**:首先,你需要从Oracle官方网站或可信的第三方源下载`java-jdk1.8-jdk-8u151-linux-x64.zip`压缩文件。确保文件的完整性和安全性,可以通过检查MD5或SHA校验和来验证。 2. **解压**:使用`unzip`命令将...
安装"jdk-8u151-windows-x64.exe"的过程非常简单,只需要双击执行文件,按照安装向导的提示进行操作。通常,安装过程中会有一个选项让你设置环境变量,确保`JAVA_HOME`指向JDK的安装路径,`PATH`环境变量包含`%JAVA_...
5. **安装过程**: "jdk-8u51-windows-x64.exe"是JDK的安装程序,双击运行后,用户可以选择安装路径、设置环境变量等,确保Java开发环境的正确配置。 6. **More.txt**:这个文件可能是安装指南、更新日志或者关于JDK...
Java文档-jdk-6u10-docs-java类库6.0-高压缩第一部分,这个标题揭示了我们关注的是Java开发工具包(JDK)的6u10版本的官方文档,这部分主要聚焦在Java类库的6.0版。Java作为一门广泛使用的面向对象的编程语言,它的...
安装`jdk-8u60-windows-x64.exe`后,系统会包含JRE(Java Runtime Environment)和开发工具,如Java编译器(javac)、Java虚拟机(JVM)、Java文档生成器(javadoc)以及Java调试器(jdb)等。这些工具对于开发和...
压缩包中的"jdk-8u51-windows-i586.exe"是安装程序,用户可以通过双击执行来安装Java JDK。"More.txt"可能包含了关于这个版本的更多信息,比如更新日志、安装指南或者许可协议等。用户在安装前应仔细阅读此文件,...
Java解压缩技术是Java开发中常见的一种操作,特别是在处理数据传输和存储时。在这个场景中,我们关注的是三个特定的Java库:`java-unrar-0.5.jar`、`commons-logging-1.2.jar`和`ant-1.6.5.jar`,它们在处理ZIP和RAR...
对于Linux x64平台的用户,下载的压缩包文件名为"jdk-8u172-linux-x64.tar.gz",这是一个典型的Linux归档文件,采用gzip压缩格式。用户需要使用解压命令如`tar -zxvf jdk-8u172-linux-x64.tar.gz`来提取文件。解压后...