public static void unzip()

in src/main/java/org/apache/datasketches/UnzipFiles.java [42:74]


  public static void unzip(final String srcZipFile, final String destDir) {
    final File dstDir = new File(destDir);
    if (dstDir.exists()) { dstDir.delete(); }
    dstDir.mkdirs(); //create the output directory
    final byte[] buffer = new byte[1024]; //buffer for read and write data to file

    try (
        FileInputStream fis = new FileInputStream(srcZipFile);
        ZipInputStream zis = new ZipInputStream(fis)) {
      ZipEntry ze = zis.getNextEntry();
      while ((ze != null) && !ze.getName().startsWith("__")) {
        final String fileName = ze.getName();
        final File newFile = new File(destDir + File.separator + fileName);
        if (!newFile.toPath().normalize().startsWith(new File(destDir).toPath())) {
          throw new IOException("Bad zip entry");
        }
        //create directories for sub directories in zip
        new File(newFile.getParent()).mkdirs();
        try (FileOutputStream fos = new FileOutputStream(newFile)) {
          int len;
          while ((len = zis.read(buffer)) > 0) {
            fos.write(buffer, 0, len);
          }
          fos.close();
        }
        zis.closeEntry(); //close this ZipEntry
        ze = zis.getNextEntry();
      }
      zis.closeEntry(); //close last ZipEntry
    } catch (final IOException e) {
        e.printStackTrace();
    }
  }