combinePaths function

String combinePaths(
  1. List<String?> paths
)

Implementation

String combinePaths(List<String?> paths) {
  List<String> parts = [];
  for (int i = 0; i < paths.length; i++) {
    var arg = paths[i]!;
    if (arg.indexOf("://") == -1)
      parts.addAll(arg.split("/"));
    else
      parts.add(arg.lastIndexOf("/") == arg.length - 1
          ? arg.substring(0, arg.length - 1)
          : arg);
  }
  List<String> combinedPaths = [];
  for (int i = 0; i < parts.length; i++) {
    var part = parts[i];
    if (part == "" || part == ".") continue;
    if (part == "..")
      combinedPaths.removeLast();
    else
      combinedPaths.add(part);
  }
  if (parts[0] == "") combinedPaths.insert(0, "");
  var ret = combinedPaths.join("/");
  return ret.length > 0 ? ret : (combinedPaths.length == 0 ? "/" : ".");
}