我在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");
有没有标准功能可以做到这一点?谢谢。
答案 0 :(得分:1)
您可以使用:
var page = new Uri(new Uri("http://dont-care"), path1);
var path3 = new Uri(page, path2).LocalPath;
答案 1 :(得分:0)
我认为没有标准功能可以做到这一点。您可以编写自己的函数,将两个字符串路径拆分为一个数组(使用“/”),然后使用等于“...”的数组部分,以向上导航另一个数组。