DotNetIO.Path.GetPathWithoutLastBit C# (CSharp) Method

GetPathWithoutLastBit() private method

private GetPathWithoutLastBit ( string path ) : Path
path string
return Path
        public static Path GetPathWithoutLastBit(string path)
        {
            Contract.Requires(!string.IsNullOrEmpty(path));
            Contract.Requires(path.Length >= 2);

            for (int i = path.Length - 1; i >= 0; i--)
                if (GetDirectorySeparatorChars().Contains(path[i]))
                    if (path.Length - 1 == i) // last char
                        continue;
                    else // otherwise, return everything before the last \ or |, unless it's the root
                        if (PathInfo.Parse(path.Substring(0, i + 1)).Root == path.Substring(0, i + 1)) return new Path(path.Substring(0, i + 1));
                        else return new Path(path.Substring(0, i));
            //var p = new Path(path);
            //var segments = p.Segments.ToList();
            //return segments.TakeWhile((s,i) => i != segments.Count-1)
            //    .Aggregate(segments.First(), System.IO.Path.Combine)
            //    .ToPath();
            return new Path(path);
        }