public static PsiDirectory mkdirs(PsiManager manager, String path) throws IncorrectOperationException{
    if (File.separatorChar != '/') {
      if (path.indexOf(File.separatorChar) != -1) {
        throw new IllegalArgumentException("separators must be '/'; path is " + path);
      }
    }

    @Nullable Pair<PsiDirectory, String> pair = findLongestExistingDirectoryAndItsPath(manager, path);
    if (pair == null) {
      return null;
    }
    PsiDirectory directory = pair.first;
    String existingPath = pair.second;
    
    if (path.equals(existingPath)) {
      return directory;
    }

    String postfix = path.substring(existingPath.length() + 1);
    StringTokenizer tokenizer = new StringTokenizer(postfix, "/");
    while (tokenizer.hasMoreTokens()) {
      directory = directory.createSubdirectory(tokenizer.nextToken());
    }

    return directory;
  }
public static PsiDirectory mkdirs(PsiManager manager, String path)