code: public static void explode(File zip) {
      try {
        // Find a new unique name is the same directory
        File tempFile = FileUtils.getTempFileFor(zip);
  
        // Rename the archive
        FileUtils.moveFile(zip, tempFile);
  
        // Unpack it
        unpack(tempFile, zip);
  
        // Delete the archive
        if (!tempFile.delete()) {
          throw new IOException("Unable to delete file: " + tempFile);
        }
      }
      catch (IOException e) {
        throw ZipExceptionUtil.rethrow(e);
      }
    }
docs: Unpacks a ZIP file to its own location.
  <p>
  The ZIP file will be first renamed (using a temporary name). After the
  extraction it will be deleted.
  
  @param zip
  input ZIP file as well as the target directory.
  
  @see #unpack(File, File)