java利用ant压缩指定文件夹

在生活中,我们会经常会用到数据压缩或解压缩的功能,虽然在pc或移动端有很多不错的压缩软件,但是当真正开发的时候,我们如果需要在代码中集成压缩和解压缩的功能就不太容易了,不过还好,现在有许多开源代码或易用的封装框架来帮我们实现压缩和解压缩的过程。

这次我们就来进行一个压缩指定文件夹的小例子:应用的是Ant,这个强大的工具。
项目结构如下图:
这里写图片描述
我们要压缩的文件夹中的内容是下图:
这里写图片描述
主类:ZipCompressorByAnt.java代码如下:

package com.acconsys.vpm.util;

import java.io.File;

import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Zip;
import org.apache.tools.ant.types.FileSet;

/**
 * @ClassName: ZipCompressorByAnt
 * @author : burns
 * @Description: 压缩文件的通用工具类-采用ant中的org.apache.tools.ant.taskdefs.Zip来实现,更加简单。
 *
 */
public class ZipCompressorByAnt {  

    private File zipFile;  

    /**
     * 压缩文件构造函数
     * @param pathName 最终压缩生成的压缩文件:目录+压缩文件名.zip
     */
    public ZipCompressorByAnt(String finalFile) {  
        zipFile = new File(finalFile);  
    }  

    /**
     * 执行压缩操作
     * @param srcPathName 需要被压缩的文件/文件夹
     */
    public void compressExe(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("**/*.java"); //包括哪些文件或文件夹 eg:zip.setIncludes("*.java");  
        //fileSet.setExcludes(...); //排除哪些文件或文件夹  
        zip.addFileset(fileSet);  
        zip.execute();  
    }  

    public static void main(String[] args) {
        ZipCompressorByAnt zipCompressorByAnt = new ZipCompressorByAnt("D:\\test\\compress2zipbyant.zip");
        zipCompressorByAnt.compressExe("D:\\test");
    }
} 

执行完这个类之后会在test目录下多出一个压缩包compress2zipbyant.zip,如下图:
这里写图片描述

如果想获取源代码和相关jar包,就戳这里吧:http://pan.baidu.com/s/1bTjL0M

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱的叹息

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值