相关疑难解决方法(0)

为什么Path.Combine会使用相对路径生成此结果?

令我惊讶的是,此代码不会产生预期的结果:

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应该是安全的方式)来解释反斜杠和前沿?

c# filesystems io .net-4.0

31
推荐指数
3
解决办法
1万
查看次数

标签 统计

.net-4.0 ×1

c# ×1

filesystems ×1

io ×1