令我惊讶的是,此代码不会产生预期的结果:
var basePath = @"\\server\BaseFolder";
var relativePath = @"\My\Relative\Folder";
var combinedPath = Path.Combine(basePath, relativePath);
Run Code Online (Sandbox Code Playgroud)
结果\My\Relative\Folder不是预期的结果\\server\BaseFolder\My\Relative\Folder.
为什么是这样?将相对路径组合在一起的最佳方法是什么?这些路径可能有也可能没有斜线?
编辑:我知道我可以在relativePath上进行字符串操作来检测并删除起始斜杠.是否有一种更安全的方式来做这个(我认为Path.Combine应该是安全的方式)来解释反斜杠和前沿?