code: public static void unexplode(File dir, int compressionLevel) {
      try {
        // Find a new unique name is the same directory
        File zip = FileUtils.getTempFileFor(dir);
  
        // Pack it
        pack(dir, zip, compressionLevel);
  
        // Delete the directory
        FileUtils.deleteDirectory(dir);
  
        // Rename the archive
        FileUtils.moveFile(zip, dir);
      }
      catch (IOException e) {
        throw ZipExceptionUtil.rethrow(e);
      }
    }
docs: Compresses a given directory in its own location.
  <p>
  A ZIP file will be first created with a temporary name. After the
  compressing the directory will be deleted and the ZIP file will be renamed
  as the original directory.
  
  @param dir
  input directory as well as the target ZIP file.
  @param compressionLevel
  compression level
  
  @see #pack(File, File)