如果执行以下代码行:
new System.Uri("C:\\Windows\\System32").MakeRelativeUri(new System.Uri("C:\\Windows\\System32\\Notepad.exe")).ToString()
和
new System.Uri("C:\\Windows").MakeRelativeUri(new System.Uri("C:\\Windows\\System32\\Notepad.exe")).ToString()
你得到:
"System32/Notepad.exe"
和
"Windows/System32/Notepad.exe"
分别不应该是"Notepad.exe"
和"System32/Notepad.exe"
吗?似乎基本路径的最后部分包含在最终的相对路径中,这是不正确的,不是吗?
如果我使用网络网址做类似的事情:
new System.Uri("http://example.com").MakeRelativeUri(new System.Uri("http://example.com/this/is/strange")).ToString()
new System.Uri("http://example.com/this").MakeRelativeUri(new System.Uri("http://example.com/this/is/strange")).ToString()
new System.Uri("http://example.com/this/is").MakeRelativeUri(new System.Uri("http://example.com/this/is/strange")).ToString()
我得到的结果如下:
"this/is/strange"
"this/is/strange"
"is/strange"
我如何获得一个相对路径,以后我可以将其与原始基本路径组合以获得原始绝对路径?我是否需要使用System.Uri.MakeRelativeUri
以外的其他内容?
答案 0 :(得分:1)
我认为这是因为article.content
无法推断MakeRelativeUri
是文件夹还是没有扩展名的文件。这将有效:
System32
网址也是如此。 new System.Uri("C:\\Windows\\System32\\").MakeRelativeUri(new System.Uri("C:\\Windows\\System32\\Notepad.exe")).ToString();
是文件夹还是资源?
这会有效:
this