规范化文件路径

My-*_*-Is 4 .net c#-2.0

我需要标准化文件路径,以便路径的一部分可以通过String.StartsWith(...)

例子:

  • 完整路径:C:/Common/Dir1/Dir2/file.txt
  • 通用路径:C:\Common\

尽管这两个文件路径是等效的,但公共部分无法通过 方法 进行匹配String.StartsWith(...)

我现在知道API方法:Path.NormalizePath(path, true);可以进行规范化,但不幸的是这个方法是内部受保护的

为了使文件路径标准化,我还有哪些其他机会?Path.GetFullPath(...)可能是可选的,但仅适用于绝对文件路径,因为它会为相对文件路径添加一个前缀,例如: C:/ 。

Fre*_*dou 5

这项工作在.net 2.0下进行

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var path = @"C:/Common/Dir1/Dir2/file.txt";
            var canonicalPath = new Uri(path).LocalPath;

            Console.WriteLine(canonicalPath.StartsWith(@"C:\Common\"));

            Console.Read();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)