Uri(Uri,String)构造函数无法正常工作
本文关键字:Uri 常工作 工作 构造函数 String | 更新日期: 2023-09-27 18:28:39
这是我的代码的一部分:
Uri branches = new Uri(@"https://127.0.0.1:8443/svn/CXB1/Validation/branches");
Uri testBranch = new Uri(branches, "test");
我预计testBranches
将是https://127.0.0.1:8443/svn/CXB1/Validation/branches/test
,但它是https://127.0.0.1:8443/svn/CXB1/Validation/test
。我不明白为什么Uri(Uri,string)构造函数会吃掉路径的最后一部分。
在分支后添加斜线
Uri branches = new Uri(@"https://127.0.0.1:8443/svn/CXB1/Validation/branches/");
Uri testBranch = new Uri(branches, "test");
您看到的行为是正确的,因为如果您想更改文件名,替换最后一部分是个好主意。
我会在第一部分的末尾加上反斜杠。然后很明显,这是一个目录,否则它可能被解释为一个文件。
Uri branches = new Uri(@"https://127.0.0.1:8443/svn/CXB1/Validation/branches/");
Uri testBranch = new Uri(branches, "test");
Console.WriteLine(testBranch);
将得到以下输出:
https://127.0.0.1:8443/svn/CXB1/Validation/branches/test
这是预期的行为。
如果在浏览器中,您所在的页面的完整URI为https://127.0.0.1:8443/svn/CXB1/Validation/branches
,并且在该页面上,您单击了一个href为test
的链接,则会被带到https://127.0.0.1:8443/svn/CXB1/Validation/test
。这就是相对URI与基本URI的组合方式。
另一方面,如果第一个URI以/
结尾,那么它将如您所期望的那样工作。