Also, um den Pfad mit zu speichern brauchst du ja nur das Laufwerk wegschneiden.
Aus D:\Pfad\nocheiner\eine.dat wird dann Pfad\nocheiner\eine.dat
Dann musst du nur noch später beim entpacken eine Prozedur erstellen, die nach und nach die unter ordner erstellt:
Delphi-Quellcode:
procedure MkSubDirs(DestDir : String; AFile : String);
var
AFileName : String;
CurDir : String;
//..
begin
AFileName := AFile;
CurDir := DestDir;
while (Pos('\', AFilename) > 0) do
begin
CurDir := CurDir + Copy(AFilename, 1, Pos('\', AFilename)-1);
Delete(AFilename, 1, Pos('\', AFilename));
If not DirectoryExists(CurDir) then
MkDir(CurDir);
CurDir := CurDir + '\';
end;
end;
Nicht getestet.