Мне нужно объединить два относительных 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);
}