“将相对路径附加到绝对路径”有很多欺骗,但我需要添加相对路径。
e.g.:
Path1 = "Parent/Child/a.txt"
Path2 = "../Sibling/file.cs"
Result = "Parent/Sibling/file.cs"
Tried:
-
Directory.GetParent()
- 有效,但我找不到返回结果的方法(它只能返回绝对路径)
-
Path.Combine()
- 仅适用于简单情况和绝对路径。在相对路径中使用“..”时失败(严重!)
...编写一个字符串标记化 Path 类来解决这个问题似乎很荒谬,但我一直在研究 MSDN 文档,似乎找不到可以正确使用相对路径的工作 Path/Directory 类。
更糟糕的是......我试图让这项工作一直回到.NET 2(感谢 Mono 兼容性)
我知道下面的代码很丑陋,但可以工作(抱歉我还没有在单声道上确认):
var Result =
Path.GetFullPath(Path.Combine(Path.GetDirectoryName(Path1), Path2))
.Substring(Directory.GetCurrentDirectory().Length + 1); // +1 to remove leading path separator
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)