如何才能获得.NET绝对或规范化文件路径?如何才能获得.NET绝对或规范化文件路径?(How can

2019-05-12 03:26发布

怎么能以最小的代价(使用一些现有的设施,如果可能的话)转换像路径c:\aaa\bbb\..\cccc:\aaa\ccc

Answer 1:

Path.GetFullPath吧?



Answer 2:

我会写这样的:

public static string NormalizePath(string path)
{
    return Path.GetFullPath(new Uri(path).LocalPath)
               .TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar)
               .ToUpperInvariant();
}

这应该处理几个场景,如

  1. URI和潜力它转义字符,像

    文件:/// C:/Test%20Project.exe - > C:\ TEST PROJECT.EXE

  2. 由点指定的路径段来表示当前或父目录

    C:\ AAA \ BBB \ .. \ CCC - > C:\ AAA \ CCC

  3. 初估值缩短(长)路径

    C:\ PROGRA〜1 \ - > C:\ Program Files文件

  4. 不一致的目录分隔符

    C:/文档\的abc.txt - > C:\文件\的abc.txt

比其他,它也可以忽略的情况下,尾随\目录分隔符等。



Answer 3:

规范化是的主要职责之一乌里在.NET类。

var path = @"c:\aaa\bbb\..\ccc";
var canonicalPath = new Uri(path).LocalPath; // c:\aaa\ccc


文章来源: How can one get an absolute or normalized file path in .NET?
标签: .net filepath