pathJoin function
Join path segments (cross-platform, no double slash). Roadmap #161.
Implementation
String pathJoin(Iterable<String> segments) {
final List<String> parts = <String>[];
for (final String s in segments) {
final String t = s.replaceAll(r'\', '/').replaceAll(RegExp(r'/+'), '/').trim();
if (t.isEmpty) continue;
if (t == '.') continue;
if (t == '..') {
if (parts.isNotEmpty) parts.removeLast();
continue;
}
parts.add(t);
}
return parts.join('/');
}