使用 C# 组合两个相对路径

2024-03-18

“将相对路径附加到绝对路径”有很多欺骗,但我需要添加相对路径。

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(使用前将#替换为@)

使用 C# 组合两个相对路径 的相关文章

随机推荐