cleanPath static method

String cleanPath(
  1. String path
)

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;
}