2013-07-24 107 views
3

爲什麼「Path.GetFullPath」在使用網絡路徑上的相關元素解析路徑時表現異常? 試試這個小例子,並比較結果:「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 ??? 
     } 
    } 
} 

這可能是一個錯誤或者可能有一定意義的,但我不明白這一點。

(該pathes或者甚至部分沒有他們真的存在在我的機器上,所以它只是一個字符串操作)

回答

7

當您使用的網絡路徑的路徑的第二部分是共享名不是目錄。

Console.WriteLine(Path.GetFullPath(@"C:\SomeDir\Dir1\Dir2\..\..\SomeFolder")); 

C:\ SomeDir \ SomeFolder

Console.WriteLine(Path.GetFullPath(@"\\Server\ShareName\Dir1\Dir2\..\..\SomeFolder")); 

\服務器\共享\ SomeFolder

+0

你以10秒打我吧! – Logarr

+0

對! .net對我來說太聰明瞭! –