Entwickler-Ecke

Sonstiges (Delphi) - Odner aus Ordnerpfad auslesen


DiamondDog - Mo 15.11.10 15:25
Titel: Odner aus Ordnerpfad auslesen
Hallo Leute,
ich steh einwenig auf dem Schlauch, hab schon ne ewigkeit gegoogelt aber nicht das Passende gefunden.
Also ich hab das Problem das ich gerne aus einem Ordnerpafd zb:
C:\Users\DiamondDog\Desktop
den letzten Ordner auslesen will (Desktop), leider hab ich dazu keinen Ansatz gefunden und es wäre nett wenn mir da vll jemand weiterhelfen könnte.

Danke schon mal an alle.

Mfg


Bergmann89 - Mo 15.11.10 15:32

Hey,

guck dir mal ExtractFileName an ;)

MfG Bergmann.


Dude566 - Mo 15.11.10 15:32

Meinst du den Inhalt des Ordners mit FindFirst und FindNext auslesen?

Edit: ExtractFileName gibt aber nur den Dateinamen plus Dateiendung wenn der Pfad zu dieser Datei angegeben ist und nicht den letzten Ordner oder?


DiamondDog - Mo 15.11.10 15:35

user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
Hey,

guck dir mal ExtractFileName an ;)

MfG Bergmann.

Genau das habe ich gesucht. Besten Dank!


Bergmann89 - Mo 15.11.10 15:41

Hey,

@Dude566: ExtractFileName kopiert lediglich alles was hinter dem letzen "\" im String ist. Also kann man damit auch ganz einfach den Ordnernamen raus bekommen, wenn man den Pfad zu einem Ordner hat.

MfG Bergmann.


Dude566 - Mo 15.11.10 16:09

user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
Hey,

@Dude566: ExtractFileName kopiert lediglich alles was hinter dem letzen "\" im String ist. Also kann man damit auch ganz einfach den Ordnernamen raus bekommen, wenn man den Pfad zu einem Ordner hat.

MfG Bergmann.


So habe ich das noch nicht verwendet, ich dachte es würde nach dem Teil hinter dem letzten "\" suchen und es müsste ein "." für die Abgrenzung zur Dateiendung bestehen.
Gut zu wissen. :lol:


Bergmann89 - Mo 15.11.10 16:22

Hey,

hab das mal durch zufall rausgefunden, allerdings sollte man aufpassen, das der String nicht mit einem "\" endet, weil dann funktioniert das ganze nicht mehr. Ich hab mir dann halt noch ne extra Funktion geschrieben, die das geprüft und ggf. behoben hat.

MfG Bergmann.


Gerd Kayser - Mo 15.11.10 18:35

user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
Ich hab mir dann halt noch ne extra Funktion geschrieben, die das geprüft und ggf. behoben hat.
Eine entsprechende Funktion (AnsiLastChar) gibt es doch bereits:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  Ordner : string;
begin
  Ordner := 'c:\programme\borland\delphi\delphi.exe';
  Ordner := ExtractFilePath(Ordner);
  if AnsiLastChar(Ordner) = '\' then
    Delete(Ordner, Length(Ordner), 1);
  Ordner := ExtractFileName(Ordner);
  Label1.Caption := Ordner;


Bergmann89 - Mo 15.11.10 19:04

Hey,

ich meinte ja nicht die Funktion, die das letzte Zeichen prüft, sondern genau das was du grad gemacht hast. Eine Funktion die den Ordnernamen ermittelt, wenn man den Pfad übergibt.

MfG Bergmann.


delphi10 - Mo 15.11.10 19:58

user profile iconGerd Kayser hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
Ich hab mir dann halt noch ne extra Funktion geschrieben, die das geprüft und ggf. behoben hat.
Eine entsprechende Funktion (AnsiLastChar) gibt es doch bereits:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  Ordner : string;
begin
  Ordner := 'c:\programme\borland\delphi\delphi.exe';
  Ordner := ExtractFilePath(Ordner);
  if AnsiLastChar(Ordner) = '\' then
    Delete(Ordner, Length(Ordner), 1);
  Ordner := ExtractFileName(Ordner);
  Label1.Caption := Ordner;

Sorry, hatte eine Ecke zu weit gedacht. Wg. Blödsinn gelöscht