像浏览器一样组合完整的URL和虚拟URL

edt*_*eke 3 c# uri relative-path

我有一个完整的URL,如:.A: http://www.domain.com/aaa/bbb/ccc/ddd/eee.ext

我有一个相对的URL,如: B: ../../fff.ext

我正在寻找.NET C#中最简单的方法来组合这两个URL并得到: C: http://www.domain.com/aaa/bbb/fff.ext

这与浏览器的作用类似:您正在浏览URL A,然后,页面的HTML具有B的超链接,结果URL为C.

Bra*_*tie 5

你可能有更好的运气查找"PathCanonicalize".

另外,根据我的发现,其中一个重载的Uri构造函数可以处理:

Uri combined = new Uri(
  new Uri("http://www.domain.com/aaa/bbb/ccc/ddd/eee.ext", UriKind.Absolute),
  "../../fff.ext"
);
Run Code Online (Sandbox Code Playgroud)

证明就在布丁中