我需要組合兩個相對的Uris,例如, ../mypath/
和myimage.png
創建../mypath/myimage.png
。它們不是磁盤上文件的路徑,因此Path.Combine
不合適(它們是網頁資源的相對路徑)。 new Uri
將拋出一個ArgumentOutOfRangeException
,因爲基本uri是相對的(不是絕對的)。組合兩個相對的Uris
除了檢查尾部斜線,然後自己組合路徑之外,是否還有其他選擇?
編輯:
這裏是證明Path.Combine不會爲的情況下工作時,第一個網址沒有包含尾隨斜線測試用例:
// The first case fails with result "../testpath\resource.png"
[TestCase("../testpath", "resource.png", "../testpath/resource.png")]
[TestCase("../testpath/", "resource.png", "../testpath/resource.png")]
public void TestPathCombine(string path, string resourceName, string expectedResult) {
string result = Path.Combine(path, resourceName);
Assert.AreEqual(expectedResult, result);
}
[Combine relative baseUri with relative path](http:// stackoverflow。com/questions/4925468/combine-relative-baseuri -with-relative-path) – 2015-04-29 18:19:02