Why does Path.Combine produce this result with a relative path?

后端 未结 2 998
余生分开走
余生分开走 2020-12-06 04:02

To my surprise, this code does not produce expected results:

var basePath = @\"\\\\server\\BaseFolder\";
var relativePath = @\"\\My\\Relative\\Folder\";

var         


        
2条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-06 04:22

    Drop the leading slash on relativePath and it should work.

    The reason why this happens is that Path.Combine is interpreting relativePath as a rooted (absolute) path because, in this case, it begins with a \. You can check if a path is relative or rooted by using Path.IsRooted().

    From the doc:

    If the one of the subsequent paths is an absolute path, then the combine operation resets starting with that absolute path, discarding all previous combined paths.

提交回复
热议问题