Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
nur Namen des letzten Verzeichnis
chrische5
myCSharp.de - Member



Dabei seit:
Beiträge: 489
Herkunft: Europa

Themenstarter:

nur Namen des letzten Verzeichnis

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 6.865
Herkunft: Waidring

beantworten | zitieren | melden

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!"
private Nachricht | Beiträge des Benutzers
chrische5
myCSharp.de - Member



Dabei seit:
Beiträge: 489
Herkunft: Europa

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
ANSI_code
myCSharp.de - Member

Avatar #avatar-2839.jpg


Dabei seit:
Beiträge: 467
Herkunft: Bayern

beantworten | zitieren | melden

üblicher wäre glaube ich Path.GetFileName, auch wenn es keine Dateien sind - es funktioniert und ist kürzer.
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 6.865
Herkunft: Waidring

beantworten | zitieren | melden

Zitat von ANSI_code
ü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!"
private Nachricht | Beiträge des Benutzers
ANSI_code
myCSharp.de - Member

Avatar #avatar-2839.jpg


Dabei seit:
Beiträge: 467
Herkunft: Bayern

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 6.865
Herkunft: Waidring

beantworten | zitieren | melden

Zitat
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.
Zitat
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!"
private Nachricht | Beiträge des Benutzers
ANSI_code
myCSharp.de - Member

Avatar #avatar-2839.jpg


Dabei seit:
Beiträge: 467
Herkunft: Bayern

beantworten | zitieren | melden

Ja in der Tat, vom stilistischen her (also auch in meinen Augen) gewinnst du. Und ja, GetFileName funktioniert. Ich habe es davor sogar ausprobiert. =)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von ANSI_code am .
private Nachricht | Beiträge des Benutzers
Marsti
myCSharp.de - Member



Dabei seit:
Beiträge: 120

beantworten | zitieren | melden

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).
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Marsti am .
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
winSharp93
myCSharp.de - Experte

Avatar #avatar-2918.png


Dabei seit:
Beiträge: 5.742
Herkunft: Stuttgart

beantworten | zitieren | melden

Aufpassen sollte man nur, wenn jemand noch am Ende einen Backslash eingibt; also:
C:\Test\TestName\TestStadt\
private Nachricht | Beiträge des Benutzers