code: public static boolean mkdirsWithExistsCheck(File dir) {
      if (dir.mkdir() || dir.exists()) {
        return true;
      }
      File canonDir = null;
      try {
        canonDir = dir.getCanonicalFile();
      } catch (IOException e) {
        return false;
      }
      String parent = canonDir.getParent();
      return (parent != null) && 
             (mkdirsWithExistsCheck(new File(parent)) &&
                                        (canonDir.mkdir() || canonDir.exists()));
    }
docs: The semantics of mkdirsWithExistsCheck method is different from the mkdirs
  method provided in the Sun's java.io.File class in the following way:
  While creating the non-existent parent directories, this method checks for
  the existence of those directories if the mkdir fails at any point (since
  that directory might have just been created by some other process).
  If both mkdir() and the exists() check fails for any seemingly
  non-existent directory, then we signal an error; Sun's mkdir would signal
  an error (return false) if a directory it is attempting to create already
  exists or the mkdir fails.
  @param dir
  @return true on success, false on failure