private void maybeCreate()

in deploy-runner-agent-smb2/src/main/java/jetbrains/buildServer/deployer/agent/smb/SMBJBuildProcessAdapter.java [165:184]


  private void maybeCreate(@NotNull final DiskShare diskShare, @NotNull final String pathInShare) {
    String existingPrefix = FileUtil.normalizeRelativePath(pathInShare).replace('/', '\\');
    final Stack<String> toCreate = new Stack<>();

    while (existingPrefix.length() > 0 && !diskShare.folderExists(existingPrefix)) {
      final int endIndex = existingPrefix.lastIndexOf('\\');
      if (endIndex > -1) {
        toCreate.push(existingPrefix.substring(endIndex + 1));
        existingPrefix = existingPrefix.substring(0, endIndex);
      } else {
        toCreate.push(existingPrefix);
        existingPrefix = "";
      }
    }

    while (!toCreate.empty()) {
      existingPrefix = (existingPrefix.length() > 0 ? existingPrefix + "\\" : "") + toCreate.pop();
      diskShare.mkdir(existingPrefix);
    }
  }