将相对路径转换为另一个相对路径

时间:2018-02-09 16:29:23

标签: c# path

我在c#:

的相对路径上有一个文件test.html
string path1 = "/sites/site/folder/subfolder1/subfolder2/subfolder3/test.html";

在文件test.html内,我有一个资源链接:

string path2 = "../../../subfolder4/image.jpg";

我想根据path1中显示的相同根据计算此资源的完整相对路径,以获得以下path3

string path3 = CalculateRelativePath(path1, path2);
Assert.AreEqual(path3, "/sites/site/folder/subfolder4/image.jpg");

有没有标准功能可以做到这一点?谢谢。

2 个答案:

答案 0 :(得分:1)

您可以使用:

var page = new Uri(new Uri("http://dont-care"), path1);
var path3 = new Uri(page, path2).LocalPath;

答案 1 :(得分:0)

我认为没有标准功能可以做到这一点。您可以编写自己的函数,将两个字符串路径拆分为一个数组(使用“/”),然后使用等于“...”的数组部分,以向上导航另一个数组。