2012-04-13 5 views
6
var baseUri = new Uri("http://localhost/"); 
var uri1 = new Uri(baseUri, "1"); 
var uri2 = new Uri(uri1, "2"); 

予期せず、uri2http://localhost/2です。 uri1にどのように追加すればいいですか?http://localhost/1/2 inteadですか? Uriこれを行うのですか、または文字列にフォールバックする必要がありますか?ちなみに、私はほとんどすべての先行/後続のスラッシュを追加しようとしました。System.Uriで複数のセグメントを追加する

答えて

11

「1」と「2」は、URLの「ファイル名部分」です。 「URLは唯一の「パス」を持っているとして、「ファイル名部分が」本当の用語ではないと:

var baseUri = new Uri("http://localhost/"); 
var uri1 = new Uri(baseUri, "1/"); 
var uri2 = new Uri(uri1, "2"); 

注意:あなたが作る場合は「1」、それはOK「1 /」動作する複数のディレクトリパスのように見えるように通常、パスの最後のチャンクはファイル名 "/foo/bar/file.txt"として扱われます。

2つのパスを組み合わせると、最初のパスの末尾部分を2番目のパスに置き換えます。あなたのケースでは、 "/ 1"と "2"( "/myFile.txt"や "NewFile.txt"のような実際の値を入れれば、より簡単になります)このように動作する理由を確認する)。

+0

ああ、それはスラッシュを入れようとしていてはいけない1つの場所です。 – Daniel

+1

私の答えを削除する。また、これはここhttp://compilify.net/bd –

+0

@ダニエル、私はまた、このように動作する理由を示す答えを更新しました... –

関連する問題