使用System.Uri删除多余的斜杠

我在我的程序中有一个条件,我必须组合一个服务器(例如http://server1.my.corp/ ),它可能有或没有带有相对路径的结尾斜线(例如/Apps/TestOne/ )。 根据文件 , Uri应该……

通过压缩序列(例如/./,/../,//,…)来规范化分层URI的路径

因此,当我执行类似var url = new Uri(server + relativePath) ,我希望它可以采用http://server1.my.corp//Apps/TestOne/并删除双斜杠(即// – > / ),但ToStringAbsolutePath和各种选项仍显示冗余/重复斜杠。 我没有使用Uri吗?

看看Uri类的构造函数。 您需要指定基本Uri和相对路径以获取标准化行为。 尝试这样的事情:

 var server = new Uri("http://server1.my.corp/"); var resource = new Uri(server, "/Apps/TestOne/");