文件解压zip

   public static void unZip(String zipFileName, String outputDirectory)
    {
      try
      {
        ZipFile zipFile = new ZipFile(zipFileName);
        Enumeration e = zipFile.entries();
        ZipEntry zipEntry = null;
        createDirectory(outputDirectory, "");
        while (e.hasMoreElements())
        {
          zipEntry = (ZipEntry)e.nextElement();
          if (zipEntry.isDirectory())
          {
            String name = zipEntry.getName();
            name = name.substring(0, name.length() - 1);
            File f = new File(outputDirectory + File.separator + name);
            f.mkdir();
          }
          else {
            String fileName = zipEntry.getName().replace('\\', '/');
            if (fileName.indexOf("/") != -1)
            {
              createDirectory(outputDirectory, fileName.substring(0, fileName.lastIndexOf("/")));
              fileName = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());
            }
            File f = new File(outputDirectory + File.separator + zipEntry.getName());
            f.createNewFile();
            InputStream in = zipFile.getInputStream(zipEntry);
            FileOutputStream out = new FileOutputStream(f);
            byte[] by = new byte[1024];
            int c;
            while ((c = in.read(by)) != -1)
            {
              //int c;
              out.write(by, 0, c);
            }
            out.close();
            in.close();
          }
        }
        zipFile.close();
      }
      catch (Exception ex) {
        ex.printStackTrace();
      }
    }

    private static void createDirectory(String directory, String subDirectory)
    {
      File fl = new File(directory);
      try {
        if (("".equals(subDirectory)) && (!fl.exists()))
        {
          fl.mkdir();
          System.out.println("创建目录" + directory + "成功");
        }
        else if (subDirectory != "")
        {
          String[] dir = subDirectory.replace('\\', '/').split("/");
          for (int i = 0; i < dir.length; i++)
          {
            File subFile = new File(directory + File.separator + dir[i]);
            if (!subFile.exists())
              subFile.mkdir();
            directory = directory + File.separator + dir[i];
          }
        }
      } catch (Exception ex) {
        System.out.println(ex.getMessage());
      }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值