对Ant的理解还是停留在它是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发上面。由于项目中要对文件夹进行打包然后下载,在网上查了一下,Ant居然可以完成此项工作,甚喜,很好用,于是乎,写篇随笔留着以后使用,也方便大家使用。
今年三月份发布了1.8.4Release版,可以去官方下载:http://ant.apache.org/
网上说Java提供了处理ZIP包的API,但是对中文支持不是很好,所以我也就没试了,直接用Apache Ant里的ZIP操作API来进行处理。ANT的API解决了中文支持问题,而且用起来也非常方便,就选择了Ant。
public class FileZipUtil { /** * 以Zip的方式打包一个文件或文件夹 * @param srcPath 待打包压缩的文件夹或文件的路径 * @param dstPath 目标文件路径,以.zip结束 * @param excludes 排除哪些文件或文件夹 */ public static void zipByAnt(String srcPath, String dstPath, String excludes) { File srcdir = new File(srcPath); if (!srcdir.exists()) throw new RuntimeException(srcPath + "不存在!"); Project prj = new Project(); Zip zip = new Zip(); zip.setProject(prj); zip.setDestFile(new File(dstPath)); FileSet fileSet = new FileSet(); fileSet.setProject(prj); if (srcdir.isDirectory()) { fileSet.setDir(srcdir); } else { fileSet.setFile(srcdir); } // fileSet.setIncludes("");//设置包含哪些文件 fileSet.setExcludes(excludes); // 排除哪些文件或文件夹 zip.addFileset(fileSet); zip.execute(); } @Test public void testZipByAnt(){ //排除文件夹下所有以.crc结尾的"**/*.crc", FileZipUtil.zipByAnt("D:/test", "D:/test.zip", "**/*.crc"); } }