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