用ant包实现zip文件解压的类

 

    前一阵做东西的时候需要一个解zip的实现,开始只知道ant包的zip子包实现了对中文路径名的支持,感觉其他应该和util包中的zip子包没什么区别,但真写起来还是有点别扭的,毕竟它没有提供ZipInputStream类,因此只好用getEtries获得枚举类型的实体集,它的缺点就在于其破坏了实体间的级联关系,因此处理起来没有util.zip包方便了。

   代码有点东拼西凑的成分,就算是转贴吧,呵呵!!!

import java.io.*;
import java.util.*;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;

public class Unzip ...{
  //zipFileName为需要解压的zip文件,extPlace为解压后文件的存放路径,两者均须已经存在
  public static void extZipFileList(String zipFileName, String extPlace) throws
      Exception ...{
    ZipFile zipFile = new ZipFile(zipFileName);
    Enumeration e = zipFile.getEntries();
    ZipEntry zipEntry = null;
    while (e.hasMoreElements()) ...{
      zipEntry = (ZipEntry) e.nextElement();
      String entryName = zipEntry.getName();
      String names[] = entryName.split("/");
      int length = names.length;
      String path = extPlace;
      for (int v = 0; v < length; v++) ...{
        if (v < length - 1) ...{
          path += names[v] + "/";
          new File(path).mkdir();
        }
        else ...{ // 最后一个
          if (entryName.endsWith("/")) ...{ // 为目录,则创建文件夹
            new File(extPlace + entryName).mkdir();
          }
          else ...{
            InputStream in = zipFile.getInputStream(zipEntry);
            OutputStream os = new FileOutputStream(new File(extPlace +
                entryName));
            byte[] buf = new byte[1024];
            int len;
            while ( (len = in.read(buf)) > 0) ...{
              os.write(buf, 0, len);
            }
            in.close();
            os.close();
          }
        }
      }
    }
    zipFile.close();
  }
}

时间: 2024-10-28 14:08:42

用ant包实现zip文件解压的类的相关文章

Mac上zip文件解压出cpgz格式的文件该怎么办?

  Mac上zip文件解压出cpgz格式的文件该怎么办? 问题原因: 首先,我们分析导致这种情况的原因有以下几点: 1.zip文件已经损坏; 2.zip文件下载时没有下载完全; 3.浏览器在下载或者下载完成zip文件时,对其进行了错误处理; 4.bug导致. 校验文件: 解决这个zip-cpgz循环有多种方法,首先你可以验证一下你的zip文件md5 hash或者SHA1(这些数据一般可以在你下载的网页上边扎到),如果校验显示不同,说明你的文件有损坏或者下载不完全. 1.校验MD5 hash方法:

php实现zip文件解压操作_php技巧

PHP解压zip文件函数,源码简短,需要使用 ZZIPlib library 扩展,使用前请确认该扩展已经开启. <? /********************** *@file - path to zip file 需要解压的文件的路径 *@destination - destination directory for unzipped files 解压之后存放的路径 *@需要使用 ZZIPlib library ,请确认该扩展已经开启 */ function unzip_file($fil

Mac上zip文件解压出cpgz怎么办?

问题原因: 首先,我们分析导致这种情况的原因有以下几点: 1.zip文件已经损坏; 2.zip文件下载时没有下载完全; 3.浏览器在下载或者下载完成zip文件时,对其进行了错误处理; 4.bug导致. 校验文件: 解决这个zip-cpgz循环有多种方法,首先你可以验证一下你的zip文件md5 hash或者SHA1(这些数据一般可以在你下载的网页上边扎到),如果校验显示不同,说明你的文件有损坏或者下载不完全. 1.校验MD5 hash方法:打开终端,输入MD5,空格,然后输入需要验证的文件路径(可

php zip文件解压类代码_php实例

复制代码 代码如下: class zip { var $datasec, $ctrl_dir = array(); var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00"; var $old_offset = 0; var $dirs = Array("."); function get_List($zip_name) { $zip = @fopen($zip_name, 'rb'); if(!$zip) ret

使用java基础类实现zip压缩和zip解压工具类分享_java

使用java基础类写的一个简单的zip压缩解压工具类 复制代码 代码如下: package sun.net.helper; import java.io.*;import java.util.logging.Logger;import java.util.zip.*; public class ZipUtil {    private final static Logger logger = Logger.getLogger(ZipUtil.class.getName());    privat

ant编译生成的war包,可以手工解压吗?

问题描述 ant生成的web应用war包,在tomcat启动后会自动解压生成同名一个目录web应用.这个步骤可以用手动用命令替代,不用启动tomcat吗 解决方案 控制台下先定位到你的war文件下,然后输入命令"jar -xf xxx.war"就可以将你的war文件解压到当前的文件夹下解决方案二: 可以 war就是用的zip压缩方式解决方案三: cd 到工程路径下 jar cvf 路径.名字.war 试试! 实在不行看下他的help

文件上传-不同机器压缩的zip压缩包,在上传文件解压后存在乱码,求帮忙分析分析

问题描述 不同机器压缩的zip压缩包,在上传文件解压后存在乱码,求帮忙分析分析 有的机器的压缩包上传解压后没问题,有的上传解压后有中文乱码,不知道这是不是跟操作系统有关系

转:linux 文件解压命令

1.tar命令 2. 3.tar 可以为文件和目录创建档案.利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件.tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘.利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的.Linux上的tar是GNU版本的. 4.语法:tar [主选项+辅选项] 文件或者目录 5.使用该命令时,主选项是必须要有的

Ubuntu下压缩包内文件解压后乱码问题的解决

  用到的工具是The Unarchiver项目提供的lsar/unar工具. The Unarchiver项目主页:http://code.google.com/p/theunarchiver/ 安装(12.04及以上): 代码: sudo apt-get install unar 12.04以下或者想编译安装的朋友请参考: viewtopic.php?f=35&t=353426 使用: 假设需要解压的ZIP包是foo.zip 代码: lsar foo.zip #列出所有文件 如果列出的文件名