C# get absolute path from relative path

c-sharp
Jeder Programmierer kennt die Problematik aus relativen Pfaden absolute machen zu müssen. In Webanwendungen mit PHP benutze ich dafür realpath. Jetzt bin ich aber in der unglücklichen Lage das Problem in C# zu meistern. Mein erster Ansatz -frag den schlausten Mensch der Welt- schlug fehl. Also Google fand etwas …. falsche Richtung – absolut zu relativ – hum….. wollte ich nicht … oder vollkommen nutzlose überpowerte Lösungen mit vielzuviel Code.
Der einfachste Weg in C# ist allerdings, das Problem über das Path Objekt zu lösen:
class Program
{
public static String PTR = @"../../../../../../target";
static void Main(string[] args)
{
string path = Path.Combine(Environment.CurrentDirectory , PTR);
path = Path.GetFullPath(path);
Console.WriteLine(path);
}
}
Ausgabe
C:\Dokumente und Einstellungen\iggi\Eigene Dateie\target
Beachtlich ist die Konvertierung von / (Unixstandard) nach \(Dosstandard). Es wundert mich, dass C# keine Funktion bietet, die genau dies in einem Aufruf löst.
Path.CombineCanonical // mein Vorschlag
Happy Coding
Links:
- http://de2.php.net/realpath
- http://www.google.de/search?hl=de&safe=off&client=firefox-a&rls=org.mozilla%3Ade%3Aofficial&hs=YjO&q=c%23+make+absolute+path+from+relative+path&btnG=Suche&meta=
- http://mrpmorris.blogspot.com/2007/05/convert-absolute-path-to-relative-path.html
Der combine-Teil ist nicht nötig.