2013-10-30 8 views
8

私のプログラムには、相対パス(例えば、/Apps/TestOne/)で終了スラッシュがある場合とない場合があるサーバー(例えばhttp://server1.my.corp/)を組み合わせなければならないという条件があります。 docsによると、Uriは...System.Uriを使用して冗長スラッシュを削除する

は、このような

ので

/./、/../、//、...などのシーケンスを圧縮することにより、階層URIのパスを標準化すべきです私はvar url = new Uri(server + relativePath)のような何かをすると、それ以外の場合はhttp://server1.my.corp//Apps/TestOne/を取ることを期待し、二重スラッシュ(すなわち// - >/)を削除しますが、ToString,AbsolutePathと冗長/重複スラッシュを示しています。 Uriを正しく使用していませんか?

答えて

15

Uri classのコンストラクタを見てください。標準化された動作を取得するには、ベースUriと相対パスを指定する必要があります。次のように試してみてください:

var server = new Uri("http://server1.my.corp/"); 
var resource = new Uri(server, "/Apps/TestOne/"); 
関連する問題