2014-06-18 30 views
3

我需要正常化的文件路径,使得该路径的一部分可经由String.StartsWith(...)正火文件路径

实施例匹配:

  • FULLPATH:C:/通用/方向1 /方向2 /文件。 TXT
  • 文件版本:C:\共同\

虽然这两个文件路径是等价的,公共部分不能通过该方法String.StartsWith(...)匹配。

我现在说API方法:Path.NormalizePath(path, true);可以做归一化,但不幸的是这种方法是内部保护

我有什么其他的机会来获得文件路径规范化? Path.GetFullPath(...)可能是选项,但仅适用于绝对文件路径,因为它会添加一个前缀,如:C:/

回答

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