code: @Nonnull
    public static FileIOError createDirRecursive (@Nonnull final File aDir)
    {
      ValueEnforcer.notNull (aDir, "Directory");
  
      // Does the directory already exist?
      if (aDir.exists ())
        return EFileIOErrorCode.TARGET_ALREADY_EXISTS.getAsIOError (EFileIOOperation.CREATE_DIR_RECURSIVE, aDir);
  
      // Is the parent directory writable?
      final File aParentDir = aDir.getParentFile ();
      if (aParentDir != null && aParentDir.exists () && !aParentDir.canWrite ())
        return EFileIOErrorCode.SOURCE_PARENT_NOT_WRITABLE.getAsIOError (EFileIOOperation.CREATE_DIR_RECURSIVE, aDir);
  
      try
      {
        final EFileIOErrorCode eError = aDir.mkdirs () ? EFileIOErrorCode.NO_ERROR : EFileIOErrorCode.OPERATION_FAILED;
        return eError.getAsIOError (EFileIOOperation.CREATE_DIR_RECURSIVE, aDir);
      }
      catch (final SecurityException ex)
      {
        return EFileIOErrorCode.getSecurityAsIOError (EFileIOOperation.CREATE_DIR_RECURSIVE, ex);
      }
    }
docs: Create a new directory. The parent directories are created if they are
  missing.
  
  @param aDir
  The directory to be created. May not be <code>null</code>.
  @return A non-<code>null</code> error code.