Ich muss zwei relative Uris, z. ../mypath/
und myimage.png
erstellen ../mypath/myimage.png
. Sie sind keine Pfade zu Dateien auf der Festplatte, daher ist Path.Combine
nicht geeignet (sie sind relative Pfade zu Ressourcen für eine Webseite). new Uri
wirft eine ArgumentOutOfRangeException
, weil die Basis-URI relativ ist (nicht absolut).Kombinieren zwei relative Uris
Habe ich andere Optionen, als nach einem Schrägstrich zu suchen und dann die Pfade selbst zu kombinieren?
EDIT:
Hier ist ein Testfall, dass Path.Combine nicht für den Fall, Arbeit zeigt, wenn die erste URL nicht bereits einen Schrägstrich enthalten:
// 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);
}
möglich Duplikat [Kombinieren relativ baseUri mit relativem Pfad] (http: // Stackoverflow.com/questions/4925468/kombinieren-relativer-baseuri-mit-relativen-Pfad) –