2017-07-11 5 views
0

Gerade jetzt habe ich einen Pfad wie diesen MyDir\Inner\Foo und ich möchte es in MyDir\Inner verwandeln können.Wie bekomme ich den Pfad zum übergeordneten Verzeichnis als relativen Pfad

Meine Idee war, Path.Combine(myRelativeDir, "..") zu verwenden und dann (für Benutzeranzeigezwecke) zu lösen, um die .. zu entfernen.

Als ich diese Online recherchiert habe, kann ich nur scheinen, Lösungen zu finden, das ein Path.GetFullPath nach Path.Combine beinhalten tun, es zu lösen, aber das mir nicht hilft, da es wie C:\RootFolders\ThatIWantToHide\MyDir\Inner in etwas ergibt, und ich will nicht Zeige einen vollständigen Pfad.

Gibt es etwas in den Standardbibliotheken, das dies erlaubt oder muss ich auf eine String-Manipulation irgendeiner Art zurückgreifen?

Zusammengefasst

Input: MyDir\Inner\Foo (relative path)

gewünschter Ausgang: MyDir\Inner (relativer Pfad aufrechterhalten)

Unerwünschter Output: C:\RootFolders\ThatIWantToHide\MyDir\Inner (relativer Weg verloren)

Unerwünschte Ausgabe: Inner (nur der Name, nicht der relative Pfad)

+0

Ich könnte etwas fehlen, aber sieht aus wie Sie brauchen [Directory.GetParent] (https://msdn.microsoft.com/en-us/library/system.io.directory.getparent.aspx) –

+0

Hallo Vlad, ich Ich habe es einfach versucht, aber es scheint immer noch einen absoluten Weg zurück zu geben. https://dotnetfiddle.net/IBK6Ba –

+0

Bitte überprüfen Sie meine Antwort. Sie können auf die Eigenschaft Name zugreifen, die einen relativen Pfad zurückgibt. FullName hat einen absoluten Namen. –

Antwort

3

Dies wird die übergeordneten und unterhält relativen Pfad Info:

Console.WriteLine(Path.GetDirectoryName(@".\bin\debug")); 
+0

Funktioniert ein Charme, danke Michal. –

+0

Froh, helfen zu können –

0

Sie die Path.GetFullPath verwenden Sie den absoluten Pfad zu bekommen, und als die Verwendung Antwort auf this post, um es in einen relativen Pfad zu ändern. Kurz gesagt, der Code verwendet die Uri.MakeRelativeUri() -Methode.

Verwandte Themen