join static method
Joins path parts using the appropriate platform separator.
Implementation
static String join(
String part1,
String part2, [
String? part3,
String? part4,
String? part5,
]) {
final separator = Platform.isWindows ? r'\' : '/';
String trimPart(String p) {
var s = p;
while (s.startsWith('/') || s.startsWith(r'\')) {
s = s.substring(1);
}
while (s.endsWith('/') || s.endsWith(r'\')) {
s = s.substring(0, s.length - 1);
}
return s;
}
var base = part1;
while (base.length > 1 && (base.endsWith('/') || base.endsWith(r'\'))) {
base = base.substring(0, base.length - 1);
}
final parts = [part2, part3, part4, part5].whereType<String>();
for (final part in parts) {
final trimmed = trimPart(part);
if (trimmed.isNotEmpty) {
if (base.isEmpty) {
base = trimmed;
} else if (base.endsWith(separator)) {
base = '$base$trimmed';
} else {
base = '$base$separator$trimmed';
}
}
}
return base;
}