Esempio n. 1
0
  /** Helper function to extract a zip entry to the given folder. */
  private static void unzipExtract(
      ZipInputStream zin, ZipEntry entry, FileObject exdir, boolean junkpaths, boolean overwrite)
      throws IOException {
    if (junkpaths) {
      throw new EvalException("unzip(junpaths=false) not yet implemented");
    }

    FileObject exfile = exdir.resolveFile(entry.getName());
    if (exfile.exists() && !overwrite) {
      throw new EvalException(
          "file to be extracted '%s' already exists", exfile.getName().getURI());
    }
    OutputStream out = exfile.getContent().getOutputStream();
    try {

      byte buffer[] = new byte[64 * 1024];
      int bytesRead;
      while ((bytesRead = zin.read(buffer)) != -1) {
        out.write(buffer, 0, bytesRead);
      }
    } finally {
      out.close();
    }
  }