使用 System.Uri 附加多个段

本文关键字:System Uri 使用 | 更新日期: 2023-09-27 18:30:59

var baseUri = new Uri("http://localhost/");
var uri1 = new Uri(baseUri, "1");
var uri2 = new Uri(uri1, "2");   

出乎意料的是,uri2 http://localhost/2。我将如何附加到uri1以便它 http://localhost/1/2?Uri执行此操作,还是需要回退到字符串?顺便说一句,我尝试几乎在任何地方添加前导/尾随斜杠。

使用 System.Uri 附加多个段

"

1"和"2"是URL的"文件名部分"。如果你使"1"看起来更像目录路径,它将正常工作"1/":

var baseUri = new Uri("http://localhost/");
var uri1 = new Uri(baseUri, "1/");
var uri2 = new Uri(uri1, "2"); 

注意:"文件名部分"不是一个真正的术语,因为 URL 只有"路径"和"查询"组件,但通常路径的最后一个块被视为文件名:"/foo/bar/file.txt"。

当您组合 2 条路径时,您希望用第二条路径替换第一条路径的某些尾部。在您的情况下,它最终只有"/1"和"2"的"文件名"段(如果您将"/myFile.txt"和"NewFile.txt"等实际值组合在一起,则更容易理解为什么它的行为方式)。