pathNormalize function

String pathNormalize(
  1. String path
)

Normalize path (resolve . and ..). Roadmap #162.

Implementation

String pathNormalize(String path) {
  final String p = path.replaceAll(r'\', '/').replaceAll(RegExp(r'/+'), '/');
  final List<String> parts = p.split('/');
  final List<String> out = <String>[];
  for (final String seg in parts) {
    if (seg.isEmpty || seg == '.') continue;
    if (seg == '..') {
      if (out.isNotEmpty) out.removeLast();
      continue;
    }
    out.add(seg);
  }
  return out.join('/');
}