6

ここに私のコードの一部があります:

Uri branches = new Uri(@"https://127.0.0.1:8443/svn/CXB1/Validation/branches");
Uri testBranch = new Uri(branches, "test");

testBranchesになると思いますがhttps://127.0.0.1:8443/svn/CXB1/Validation/branches/test、そうですhttps://127.0.0.1:8443/svn/CXB1/Validation/test。Uri(Uri, string) コンストラクターがパスの最後の部分を食べる理由がわかりません。

4

3 に答える 3

8

分岐の後にスラッシュを追加

  Uri branches = new Uri(@"https://127.0.0.1:8443/svn/CXB1/Validation/branches/");
  Uri testBranch = new Uri(branches, "test");
于 2013-08-22T07:49:14.843 に答える
3

ファイル名を変更する場合は、最後の部分を置き換えることをお勧めします。

最初の部分の最後にバックスラッシュを追加します。そうすれば、これがディレクトリであることは明らかですが、そうでなければ、ファイルとして解釈される可能性があります。

Uri branches = new Uri(@"https://127.0.0.1:8443/svn/CXB1/Validation/branches/");
Uri testBranch = new Uri(branches, "test");
Console.WriteLine(testBranch);

この出力が得られます:

 https://127.0.0.1:8443/svn/CXB1/Validation/branches/test
于 2013-08-22T07:57:45.157 に答える
2

それが期待される動作です。

ブラウザで、完全な URI が のページにいて、https://127.0.0.1:8443/svn/CXB1/Validation/branchesそのページで、href が だけのリンクをクリックすると、 に移動しtestますhttps://127.0.0.1:8443/svn/CXB1/Validation/test。これは、ベース URI を使用して相対 URI を構成する方法です。

一方、最初の URI が a で終わっている/場合は、期待どおりに機能します。

于 2013-08-22T07:52:02.893 に答える