使用ant.jar实现文件压缩与解压缩

        最近在工作中要实现文件或目录的压缩与解压缩,于是参考了一些资料,使用ant.jar(org.apache.tools.zip)实现了对资源的压缩与解压缩,并在windows与linux环境下测试通过。

        有以下几点说明:

        (1)使用org.apache.tools.zip而非java.util.zip的原因是java.util.zip并不支持中文的文件或目录名

        (2)关于org.apache.tools.zip.ZipEntry的问题,在new ZipEntry(String path)时,如果path指向目录,则path最后要以"/"字符结尾,如果是文件,则不能含"/".在这里好像有一个缺陷,就是当压缩的是空目录时,如果是在window系统,File.seperator是 \ ,那么压缩空目录会有问题,这时就要把 "\" 替换成 "/" (当然这只是表面的理解,如果有时间还是需要看下文档或者源码)

        (3)向外部暴露的方法是 public static void compress(String zipFilename, String[] paths) 和 public static void decompress(String unzipPath, String zipFilePath)

       

    /**
     * 压缩目录
     * 
     * @param zos zip包输出流
     * @param dirPath 被压缩目录的路径
     * @param basePath 压缩进zip包里面相对于zip根目录的路径
     * @throws Exception
     */
    private static void zipDirectory(ZipOutputStream zos, String dirPath, String basePath) throws IOException {
        File dir = new File(dirPath);
        if (dir.exists()) {
            File files[] = dir.listFiles();

            if (files.length > 0) // 不为空目录情况
            {
                for (int i = 0; i < files.length; i++) {

                    if (files[i].isDirec
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
[CLASS] org.apache.tools.ant.Main org.apache.tools.ant.Task org.apache.tools.bzip2.CRC org.apache.tools.ant.Target org.apache.tools.ant.Project org.apache.tools.zip.ZipFile org.apache.tools.zip.ZipLong org.apache.tools.ant.Executor org.apache.tools.ant.Location org.apache.tools.tar.TarEntry org.apache.tools.tar.TarUtils org.apache.tools.zip.UnixStat org.apache.tools.zip.ZipEntry org.apache.tools.zip.ZipShort org.apache.tools.ant.XmlLogger org.apache.tools.tar.TarBuffer org.apache.tools.zip.JarMarker org.apache.tools.zip.ZipFile$1 org.apache.tools.ant.BuildEvent org.apache.tools.ant.MagicNames org.apache.tools.ant.types.Path org.apache.tools.ant.BuildLogger org.apache.tools.ant.Diagnostics org.apache.tools.ant.FileScanner org.apache.tools.ant.TaskAdapter org.apache.tools.ant.TypeAdapter org.apache.tools.ant.XmlLogger$1 org.apache.tools.mail.MailMessage org.apache.tools.tar.TarConstants org.apache.tools.ant.taskdefs.Ant org.apache.tools.ant.taskdefs.Apt org.apache.tools.ant.taskdefs.Cvs org.apache.tools.ant.taskdefs.Ear org.apache.tools.ant.taskdefs.Get org.apache.tools.ant.taskdefs.Jar org.apache.tools.ant.taskdefs.Tar org.apache.tools.ant.taskdefs.War org.apache.tools.ant.taskdefs.Zip org.apache.tools.ant.types.DirSet org.apache.tools.ant.types.Mapper org.apache.tools.ant.BuildListener org.apache.tools.ant.DefaultLogger org.apache.tools.ant.Diagnostics$1 org.apache.tools.ant.ExitException org.apache.tools.ant.PathTokenizer org.apache.tools.ant.ProjectHelper org.apache.tools.ant.TaskContainer org.apache.tools.zip.AsiExtraField org.apache.tools.zip.ZipExtraField org.apache.tools.ant.taskdefs.Copy org.apache.tools.ant.taskdefs.Echo org.apache.tools.ant.taskdefs.Exec org.apache.tools.ant.taskdefs.Exit org.apache.tools.ant.taskdefs.GZip org.apache.tools.ant.taskdefs.Java org.apache.tools.ant.taskdefs.Move org.apache.tools.ant.taskdefs.Nice org.apache.tools.ant.taskdefs.Pack org.apache.tools.ant.taskdefs.Rmic org

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值