Ändere den Thementitel bitte mal in "Verzeichnisoperationen" oder ähnliches, denn das deckt alle deine Fragen ab.
Ich habe mal schnell eine kleine Funktion geschrieben. Es geht sicher schöner, aber zur Not reicht's.
Delphi-Quellcode:
function GetPreviousDir(CurrentPath: string): string;
begin
Result := ExtractFilePath(Copy(CurrentPath, 1,
Length(CurrentPath) - Length(ExtractFilename(CurrentPath)) - 1));
end;