Beispiel #1
0
        public static string StripLeadingSeparator(string?path, DirectorySeparator separator = DirectorySeparator.Universal)
        {
            if (path == null)
            {
                return("");
            }

            return(NormalizeSeparators(
                       path?.Trim()
                       .TrimStart(separator.ToCharString()),
                       separator
                       ));
        }
Beispiel #2
0
        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
                       ));
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
 public static string JoinPath(IEnumerable <string?>?parts, DirectorySeparator separator = DirectorySeparator.Universal)
 {
     return(parts?.Aggregate((pathSoFar, nextPart) => JoinPath(pathSoFar, nextPart, separator)) ?? "");
 }
Beispiel #5
0
 public static string NormalizeSeparators(string?path, DirectorySeparator separator = DirectorySeparator.Universal)
 {
     return(path.IsBlank() ? "" : DirectorySeparatorPattern.Replace(path.Trim(), separator.ToCharString()));
 }
Beispiel #6
0
        public static DirectorySeparator AsDirectorySeparator(this string value)
        {
            var directorySeparator = new DirectorySeparator(value);

            return(directorySeparator);
        }