滴水穿石使用Apache Ant进行ZIP文件压缩

  对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");
    }

}
原文地址:https://www.cnblogs.com/nexiyi/p/2808139.html