cleanPath static method
Clean path by normalizing separators and resolving . and ..
Implementation
static String cleanPath(String path) {
if (!hasLength(path)) return path;
String normalizedPath = path.replaceAll('\\', '/');
if (!normalizedPath.contains('.')) return normalizedPath;
final parts = normalizedPath.split('/');
final cleanParts = <String>[];
for (final part in parts) {
if (part == '.' || part.isEmpty) {
continue;
} else if (part == '..') {
if (cleanParts.isNotEmpty && cleanParts.last != '..') {
cleanParts.removeLast();
} else {
cleanParts.add(part);
}
} else {
cleanParts.add(part);
}
}
final result = cleanParts.join('/');
return normalizedPath.startsWith('/') ? '/$result' : result;
}