4

ネットワーク パス上の相対要素を使用してパスを解決するときに、"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 ???
        }
    }
}

バグか何か意味があるのか​​もしれませんが、私にはわかりません。

(私のマシンには実際にはパスやパスの一部さえ存在しないため、単なる文字列操作です)

4

1 に答える 1

8

ネットワーク パスを使用する場合、パスの 2 番目の部分はディレクトリではなく共有名です。

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

C:\SomeDir\SomeFolder

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

\サーバー\共有名\SomeFolder

于 2013-07-24T15:56:06.777 に答える