code: private static void deleteRecursively(File file) throws IOException {
          if (file.isDirectory()) {
              deleteDirectoryContents(file);
          }
          if (!file.delete()) {
              throw new IOException("Failed to delete " + file);
          }
      }
docs: Cloned from guava's com.google.common.io.Files in r9.  It was later erased completely.
  <p/>
  Deletes a file or directory and all contents recursively.
  <p/>
  <p>If the file argument is a symbolic link the link will be deleted
  but not the target of the link. If the argument is a directory,
  symbolic links within the directory will not be followed.
  
  @param file the file to delete
  @throws IOException if an I/O error occurs
  @see #deleteDirectoryContents