• 滴水穿石使用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");
        }
    
    }
  • 相关阅读:
    包介绍、日志模块及深浅拷贝
    一些常用模块
    RE模块(正则)
    软件开发规范
    模块及模块导入
    一些常用的内置函数总结
    迭代器、可迭代对象、迭代器对象
    多层装饰器例子
    闭包函数和装饰器
    递归、二分法、三元表达式及内置函数和匿名函数
  • 原文地址:https://www.cnblogs.com/nexiyi/p/2808139.html
Copyright © 2020-2023  润新知