public static string StripLeadingSeparator(string?path, DirectorySeparator separator = DirectorySeparator.Universal) { if (path == null) { return(""); } return(NormalizeSeparators( path?.Trim() .TrimStart(separator.ToCharString()), separator )); }
public static string EnsureTrailingSeparator(string?path, DirectorySeparator separator = DirectorySeparator.Universal) { if (path == null) { return(separator.ToCharString()); } return(NormalizeSeparators( path?.Trim() .TrimEnd(DirectorySeparatorPattern) .Suffix(separator.ToCharString()), separator )); }
public static string NormalizePath(string path) { path = NormalizeSlashes(path); var rootLength = GetRootLength(path); var root = path.Substring(0, rootLength); var normalized = GetNormalizedParts(path, rootLength); if (normalized.Any()) { var joinedParts = root + string.Join(DirectorySeparator.ToString(), normalized);//.join(directorySeparator); return(PathEndsWithDirectorySeparator(path) ? joinedParts + DirectorySeparator : joinedParts); } else { return(root); } }
public static string JoinPath(IEnumerable <string?>?parts, DirectorySeparator separator = DirectorySeparator.Universal) { return(parts?.Aggregate((pathSoFar, nextPart) => JoinPath(pathSoFar, nextPart, separator)) ?? ""); }
public static string NormalizeSeparators(string?path, DirectorySeparator separator = DirectorySeparator.Universal) { return(path.IsBlank() ? "" : DirectorySeparatorPattern.Replace(path.Trim(), separator.ToCharString())); }
public static DirectorySeparator AsDirectorySeparator(this string value) { var directorySeparator = new DirectorySeparator(value); return(directorySeparator); }