Hallo
Ich hole mir mittels Directory.GetDirectories alle Verzeichnisse und nun stehen dort aber string wie (C:\Test\TestName\TestStadt). Wie ist es möglichn nun nur den Namen des letzten Verzeichnisses zu bekommen. Im Beispielfall bräuchte ich TestStadt. Gibt es dazu etwas fertiges im Framework?
chrische
Hallo,
du kannst den String der den Pfad darstellt mit string.Split('\')
aufteilen und dann von dem resultierenden Array das letzte Element nehmen.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Hallo
Okay an so etwas hatte ich auch schon gedacht. Es gibt also keine Methode im Framework, die genau das macht, was ich brauch?
chrische
üblicher wäre glaube ich Path.GetFileName, auch wenn es keine Dateien sind - es funktioniert und ist kürzer.
üblicher wäre glaube ich Path.GetFileName, auch wenn es keine Dateien sind - es funktioniert und ist kürzer.
Das hat mich jetzt auf die Idee gebracht dass es auch korrekt funktionieren sollte 😉
DirectoryInfo di = new DirectoryInfo("C:\\Test\\TestName\\TestStadt");
string s = di.Name;
liefert das gewünschte Ergebnis.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Streiten wir mal darum, welche Methode besser ist 😉 😁
meine Argumente:
weniger Balast, da keine unnötigen DirInfo-objekte, also schneller etc.
wahrscheinlich weniger anpassung für ihn, wenn er GetDirectories benutzt
gut, mehr fällt mir nicht ein 🙂
Streiten wir mal darum, welche Methode besser ist
Es geht darum eine Information von ein Pfad zu ermitteln -> übersetzt ins Englische => Information from Directory -> Umstellen und Kürzen => DirectoryInfo 8)
Mit einer Datei hat es nicht zu, darum scheidet GetFileName aus. Das wäre eine Zweckentfremdung (die laut deiner Aussage allerdings auch das korrekte Ergebnis liefert) der Methode.
Von der Umsetzung her funktionieren DirectoryInfo.Name und Path.GetFilename ähnlich und zwar derart dass mittels SubString die benötigte Information extrahiert wird.
weniger Balast, da keine unnötigen DirInfo-objekte, also schneller etc.
Kannst du das beweisen - sonst glaub ich gar nichts. (Ist aber nicht nötig).
Dieses Spiel müssen wir aber nicht weitertreiben - ich für meinen Teil zumindest nicht.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Ja in der Tat, vom stilistischen her (also auch in meinen Augen) gewinnst du. 🙂 Und ja, GetFileName funktioniert. Ich habe es davor sogar ausprobiert. =)
Naja die Split-Methode verliert in diesem Fall schon deshalb, weil nicht Path.DirectorySeparatorChar benutzt wird 😉 Zumal es schon deswegen unsauber ist, weil nicht alle Varianten berücksichtigt sind (unter Windows funktionieren ja sowohl / als auch \ in Pfadangaben).
Hallo zusammen,
der "Streit" um die beste Lösung ist ontopic. Daher habe ich alle offtopic-Tags entfernt.
Ich hoffe, wir können uns schnell darauf einigen, dass String-Split unpassend und ungünstig ist. Einen Grund hat ja Marsti schon geliefert.
Ich persönlich finde es übertrieben ein DirectoryInfo-Objekt zu erzeugen, nur um den Namen zu bekommen, den man per Path.GetFileName auch direkt bekommen kann.
Blöd ist natürlich, dass die Methode Path.GetFileName heißt, obwohl man damit genauso gut Verzeichnisnamen auslesen kann.
herbivore
Aufpassen sollte man nur, wenn jemand noch am Ende einen Backslash eingibt; also:
C:\Test\TestName\TestStadt\