规范化文件路径

时间:2014-06-18 13:14:40

标签: .net c#-2.0

我需要规范化文件路径,以便通过String.StartsWith(...)

匹配路径的一部分

示例:

  • FullPath:C:/Common/Dir1/Dir2/file.txt
  • CommonPath:C:\ Common \

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

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

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

1 个答案:

答案 0 :(得分:4)

.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();
        }
    }
}