java使用 org.apache.tools.ant.taskdefs.Zip 类压缩文件

最近用到了压缩与解压文件,于是采用了ant的zip类,下面做下使用细节介绍

  • 压缩单个指定文件
  • 压缩对应目录指定的文件
压缩指定的文件

指定对应的目录下的文件名,可以为多个:
fileSet.setIncludes(“1.docx,1.doc”);
该方法的参数是文件名的列表,中间用逗号或则空格隔开,也可以采用通配符 eg:zip.setIncludes(“*.docx”); 用于设置要加压的文件或则文件夹
fileSet.setExcludes(“2.docx,2.doc”)
参数跟setIncludes一样,用于设置该目录下不想合并压缩的文件或则文件夹
对应的测试代码如下所示

/**
     * 执行压缩操作
     * @param srcPathName 需要被压缩的文件/文件夹
     */
    public void compressTest(String srcPathName) {  
        File srcdir = new File(srcPathName);  
        if (!srcdir.exists()){
            throw new RuntimeException(srcPathName + "不存在!");  
        } 
         Project prj = new Project();  
        Zip zip = new Zip();  
        zip.setProject(prj);  
        zip.setDestFile(zipFile);  
        FileSet fileSet = new FileSet();  
        fileSet.setProject(prj);  
        fileSet.setDir(srcdir);  
        fileSet.setIncludes("1.docx,1.doc"); //包括哪些文件或文件夹 eg:zip.setIncludes("*.java");  
        //fileSet.setExcludes(...); //排除哪些文件或文件夹  可以使用支持通配符匹配也可以直接是该目录下的文件名字符串  eg:zip.setExcludes("a.java,b.txt,c.exe");
        zip.addFileset(fileSet);  
        zip.execute();  
    }

setIncludes 可以看下apache提供的zip jar源码 ,它实际上是采用的空格与逗号进行文件名的分解,采用这个方法就得注意了文件名不能有空格的哦,要是文件名有空格,那就看下面的方法吧,待会奉上免费下载地址

下面提供多文件压缩的另一种方法

private File zip(String zipFilePath ,String fileNames, String srcPath) {
        File zipFile = new File(zipFilePath);
         File srcdir = new File(srcPath); 
        Project prj = new Project();  
        Zip zip = new Zip();  
        zip.setProject(prj);  
        zip.setDestFile(zipFile);  
        FileSet fileSet = new FileSet();  
        fileSet.setProject(prj);  
        fileSet.setDir(srcdir);  
        String names[] = fileNames.split(",");
        for(String name: names){
            fileSet.createInclude().setName(name); //通过这种方法添加多个文件,相当于自己做了zip中的分解分解名的这步
        }
        zip.addFileset(fileSet);
        zip.setEncoding("gbk");  
        zip.execute();  
        return zipFile;
    }

通过fileSet.createInclude().setName来实现添加要压缩的文件,实现多文件压缩


最后附上相关jar的下载地址:

ant-1.8.4.jar tools.jar

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值