code: public static void deleteDirectory(File directory) throws IOException {
      if (!directory.exists()) {
        return;
      }
  
      if (!isSymlink(directory)) {
        cleanDirectory(directory);
      }
  
      if (!directory.delete()) {
        String message =
            "Unable to delete directory " + directory + ".";
        throw new IOException(message);
      }
    }
docs: Deletes a directory recursively.
  
  @param directory  directory to delete
  @throws IOException in case deletion is unsuccessful