Marabus Lösung ist kürzer als meine, aber ich will sie trotzdem nicht vorenthalten:
Delphi-Quellcode:
function GetLastDirFromPath(
const Pfad:
String):
String;
var
i : Integer;
j : Integer;
s :
String;
begin
i := 1;
j := 1;
s := ExtractFilePath(Pfad);
Delete(s, Length(s), 1);
// Abschliessendes \ entfernen
// Und jetzt nach einem \ suchen, bis man das letzte hat
// Dazu wird die Position des vorhergehenden gesichert
while (i>0)
do
begin
j := i;
i := PosEx('
\', s, i+1);
// function PosEx(SubStr, S: String; Offset: Integer = 1): Integer;
// Sucht SubStr in S ab Position Offset
// Ergebnis: Wenn (SubStr nicht gefunden wurde)or(Offset>Length(s))or(Offset<1) dann 0 sonst (Position von SubStr)
// Für PosEx muss die Unit StrUtils eingebunden werden
end;
Result := Copy(s, j+1, Length(s));
end;