Мне нужно объединить два относительных Uris, например ../ mypath /
и ] myimage.png
для создания ../ mypath / myimage.png
. Это не пути к файлам на диске, поэтому Path.Combine
не подходит (это относительные пути к ресурсам для веб-страницы). новый Uri
генерирует исключение ArgumentOutOfRangeException
, потому что базовый URI является относительным (не абсолютным).
Есть ли у меня какие-либо другие варианты, кроме проверки наличия косой черты в конце и последующего объединения путей самостоятельно?
РЕДАКТИРОВАТЬ:
Вот тестовый пример, демонстрирующий, что Path.Combine не будет работать в случае, когда первый URL еще не содержит завершающую косую черту:
// 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);
}