C# get absolute path from relative path

Posted by admin on Feb 6, 2009 in Allgemein |

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

1 Comment

Anonymous
Sep 13, 2011 at 22:10

Der combine-Teil ist nicht nötig.


 

Reply

OC

Copyright © 2018 Stempell All rights reserved. Theme by Laptop Geek.