@Override
  public @NotNull VirtualFile createChildDirectory(Object requestor, @NotNull VirtualFile parent, @NotNull String name) throws IOException {
    if (!isValidName(name)) {
      throw new IOException(CoreBundle.message("directory.invalid.name.error", name));
    }
    if (!parent.exists() || !parent.isDirectory()) {
      throw new IOException(IdeCoreBundle.message("vfs.target.not.directory.error", parent.getPath()));
    }
    if (parent.findChild(name) != null) {
      throw new IOException(IdeCoreBundle.message("vfs.target.already.exists.error", parent.getPath() + "/" + name));
    }

    if (!auxCreateDirectory(parent, name)) {
      var nioFile = convertToNioFileAndCheck(parent, false).resolve(name);
      NioFiles.createDirectories(nioFile);
    }

    auxNotifyCompleted(handler -> handler.createDirectory(parent, name));

    return new FakeVirtualFile(parent, name);
  }
@Override
  public @NotNull VirtualFile createChildDirectory(Object requestor, @NotNull VirtualFile parent, @NotNull String name)