"Path.GetFullPath"和网络路径

Ole*_*ann 3 .net c# path

为什么在解析网络路径上具有相关元素的路径时,"Path.GetFullPath"会表现得很奇怪?试试这个小例子并比较结果:

using System;
using System.IO;

namespace ConsoleApplication1 {
    class Program {
        static void Main(string[] args) {
            Console.WriteLine(Path.GetFullPath(@"C:\Stay\Elim1\Elim2\..\..\SomeFolder"));  // yields C:\Stay\SomeFolder
            Console.WriteLine(Path.GetFullPath(@"\\Stay\Elim1\Elim2\..\..\SomeFolder"));   // yields \\Stay\Elim1\SomeFolder ???
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它可能是一个错误,或者可能有一些意义,但我不明白.

(它们中没有任何一个甚至是它们的部分真的存在于我的机器上,所以它只是一个字符串操作)

I4V*_*I4V 7

当您使用网络路径时,路径的第二部分是共享名称而不是目录.

Console.WriteLine(Path.GetFullPath(@"C:\SomeDir\Dir1\Dir2\..\..\SomeFolder"));  
Run Code Online (Sandbox Code Playgroud)

C:\ SomeDir\SomeFolder

Console.WriteLine(Path.GetFullPath(@"\\Server\ShareName\Dir1\Dir2\..\..\SomeFolder"));
Run Code Online (Sandbox Code Playgroud)

\服务器\共享\ SomeFolder