Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi letzten Ordner eines Pfades ermitteln (https://www.delphipraxis.net/172600-letzten-ordner-eines-pfades-ermitteln.html)

Helmi 13. Jan 2013 19:55

letzten Ordner eines Pfades ermitteln
 
Hallo,

gibt es eine Funktion, mit der man den letzten Ordner eines Pfades,z. B.
Zitat:

C:\OrdnerA\OrdnerAA\OrdnerAAA
ermitteln kann (im Beispiel "OrdnerAAA")?

Dalai 13. Jan 2013 20:03

AW: letzten Ordner eines Pfades ermitteln
 
ExtractFileName?

MfG Dalai

sx2008 13. Jan 2013 20:08

AW: letzten Ordner eines Pfades ermitteln
 
Woher weiss man, ob das ein Verzeichnis oder eine Datei ist?
Delphi-Quellcode:
ExtractFilename('C:\OrdnerA\OrdnerAA\OrdnerAAA')
würde den String 'OrdnerAAA' liefern.

Helmi 13. Jan 2013 20:12

AW: letzten Ordner eines Pfades ermitteln
 
mmh - danke! - auf ExtractFileName wär ich jetzt nicht gekommen.

Aber natürlich ist es so - schliesslich kann das Letzte nur ein Ordner oder eine Datei sein (und die ohne Erweiterung)

Bernhard Geyer 13. Jan 2013 20:40

AW: letzten Ordner eines Pfades ermitteln
 
Zitat:

Zitat von sx2008 (Beitrag 1198919)
Woher weiss man, ob das ein Verzeichnis oder eine Datei ist?

Einfach das Betriebssystem (Dateiattribute) fragen: http://www.delphidabbler.com/codesni...es=IsDirectory

Sir Rufo 13. Jan 2013 23:01

AW: letzten Ordner eines Pfades ermitteln
 
Zitat:

Zitat von Helmi (Beitrag 1198914)
Hallo,

gibt es eine Funktion, mit der man den letzten Ordner eines Pfades,z. B.
Zitat:

C:\OrdnerA\OrdnerAA\OrdnerAAA
ermitteln kann (im Beispiel "OrdnerAAA")?

[Klugscheissermodus AN]

Das ist kein Pfad sondern ein Verzeichnis
Zitat:

Zitat von Verzeichnis
C:\OrdnerA\OrdnerAA\OrdnerAAA

Zitat:

Zitat von Pfad
C:\OrdnerA\OrdnerAA\OrdnerAAA\

[Klugscheissermodus AUS]

Delphi-Referenz durchsuchenExtractFileName kontrolliert nicht, ob die angegebene Datei existiert oder ob es sich wirklich um eine Datei oder ein Verzeichnis handelt. Es wird schlicht und ergreifend der Pfad aus dem übergebenen String entfernt.

Übergibt man das Verzeichnis (l.t. Definition oben) dann ist das Ergebnis "OrdnerAAA".
Übergibt man den Pfad (l.t. Definition oben) dann ist das Ergebnis "".

DeddyH 14. Jan 2013 07:02

AW: letzten Ordner eines Pfades ermitteln
 
Statt zu referieren könnte man es auch einfach formulieren:
Delphi-Quellcode:
ExtractFileName(ExcludeTrailingPathDelimiter(<Pfad oder Verzeichnis>))
Ggf. noch die Dateiattribute ermitteln, dann weiß man, ob es ein Verzeichnis oder eine Datei ist.
:mrgreen:

Helmi 14. Jan 2013 07:50

AW: letzten Ordner eines Pfades ermitteln
 
Zitat:

Zitat von DeddyH (Beitrag 1198944)
Statt zu referieren könnte man es auch einfach formulieren:
Delphi-Quellcode:
ExtractFileName(ExcludeTrailingPathDelimiter(<Pfad oder Verzeichnis>))

So hab ich es schlussendlich auch gemacht - das reicht mir, denn ich bekomme einen Dateinamen übergeben inkl. Pfadangabe und sortiere zuvor schon den Pfad daraus raus (ExtractFilePath). Aus dem nun erhaltenen Pfad (richtig so?) will ich nun das letzte Verzeichnis (richtig so?) ermitteln.

terence14 14. Jan 2013 11:24

AW: letzten Ordner eines Pfades ermitteln
 
Ich löse solche Probleme immer, indem ich

1) den String prüfe, ob er auf ein "\" endet,
nachdem ich mit s:=Trim(s) alle Leerzeichen am
Ende entfernt habe.

2) ist das der Fall, hänge einen "." an,
wenn nicht hänge ein "\." an
und schau mit DirectoryExist(s) nach,
ob der Pfad existiert.

3) Wenn ja, dann ist das letzte im String ein
Verzeichnisname, ansonsten ein Dateiname :)

4) Mit ExtractFileName(s) wird übrigens immer der
letzte Stringabschnitt nach einem "\" zurückgegeben.

MfG,
terence


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz