Entwickler-Ecke
Sonstiges (.NET) - Verzeichnisname ermitteln
friesi - Mi 15.11.06 01:43
Titel: Verzeichnisname ermitteln
Hallo :)
Ich habe nochmal eine Frage.
In einem string steht ein Pfad:
C#-Quelltext
1:
| string dir = "c:\das\ist\ein\pfad"; |
Nun würde ich gerne das letzte Verzeichnis als string haben (also
pfad).
Könnte mir jemand einen tipp geben, wie ich bis zum letzten "\" den String ermittel?
Moderiert von
Christian S.: Topic aus C# - Die Sprache verschoben am Mi 15.11.2006 um 01:43
friesi - Mi 15.11.06 01:53
Hat sich erledigt :)
C#-Quelltext
1: 2: 3: 4: 5: 6:
| string dir = "c:\das\ist\ein\pfad";
char[] splitter = {'\\'};
string[] dirs = dir.Split(splitter); string dirname = dirs[dirs.Length-2]; |
JüTho - Mi 15.11.06 10:14
Auch wenn Du selbst einen Weg gefunden hast - der folgende dürfte besser sein:
C#-Quelltext
1: 2:
| int i0 = dir.LastIndexOf('\'); dirname = dir.SubString(i0); |
Gruß Jürgen
Kha - Mi 15.11.06 19:57
Nicht ganz, so sollte es schon eher hinpassen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| static string ExtractDirectoryName(string path) { char[] separators = new char[] { Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar }; int stop = path.LastIndexOfAny(separators); if (stop == -1) return null; return Path.GetFileName(path.Substring(0, stop)); } |
friesi - Mi 15.11.06 21:01
Danke für die ganzen weiteren (optimierten) Möglichkeiten.
UGrohne - Do 16.11.06 09:17
Also bevor ich das Ganze selbst zerpflücke, mache ich das lieber so:
C#-Quelltext
1: 2: 3: 4:
| string path = @"c:\windows\System32\"; string dirname; path = path.Trim('\\'); dirname = System.IO.Path.GetFileName(path); |
friesi - Do 16.11.06 09:56
Warum schreibt man eigentlich immer ein @ vor den Pfad?
C#-Quelltext
1:
| string path = @"c:\windows\System32\"; |
Hab ich jetzt schon öfters gesehen!
Delete - Do 16.11.06 11:39
weil man sonst ein "\\" im Pfadnamen eingeben muss, da "\" ein Steuerzeichen ist.
Kha - Do 16.11.06 14:00
UGrohne hat folgendes geschrieben: |
Also bevor ich das Ganze selbst zerpflücke, mache ich das lieber so: |
Nicht ganz das Geforderte, du müsstest Trim durch LastIndexOf ersetzen. Wenn du die Funktion nun noch plattformunabhängig gestaltest, sind wir beim gleichen Code angelangt, weil ich nun dafür GetFilename übernommen habe ;) .
@friesi: Unbekannte Operatoren oder Funktionen einfach mal in den SDK-Index eintippen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!