我的 Uri 构造函数有问题。基本路径是否以斜杠结尾的结果会有所不同。
var baseWithSlash = new Uri("c:\\Temp\\");
var baseNoSlash = new Uri("c:\\Temp");
var relative = "MyApp";
var pathWithSlash = new Uri(baseWithSlash, relative); // file:///c:/Temp/MyApp
var pathNoSlash = new Uri(baseNoSlash, relative); // file:///c:/MyApp
即使基本路径中没有斜杠,第一个结果也是我所期望的。
我的主要问题是基本路径来自用户输入。
即使用户指定不带尾部斜杠的路径,获得正确结果的最佳方法是什么?
国际海事组织认为这是可以预料的。毕竟,请考虑“hello.jpg”相对于
http://foo.com/site/index.html
It's
http://foo.com/site/hello.jpg
right?
现在如果你know如果您的用户正在输入代表目录的 URI,您可以确保该字符串末尾有斜杠。如果您不知道他们是否输入了目录名称,就会出现问题。如果没有斜线,只添加斜线是否适合您?
string baseUri = new Uri(userUri + userUri.EndsWith("\\") ? "" : "\\");
这是假设(根据您的示例)他们将使用反斜杠。根据您的具体情况,您可能还需要处理正斜杠。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)