Hi!
Ist jetzt mal ins unreine geschrieben, sollte aber mit evtl. kleinen Änderungen funktionieren. Der Trick besteht daran, dass man die CopyDirectory procedure rekursiv aufruft, wenn FindFirst einen Ordner findet.
Delphi-Quellcode:
procedure CopyDirectory(aDirectory,aDestinationDirectory:String);
var
LStrList: TStringlist;
LSearchRec: TSearchRec;
begin
if FindFirst(aDirectory + '*.*', faAnyFile, LSearchRec) = 0 then
begin
repeat
//Ordner auflisten
if LSearchRec.Attr and faDirectory = faDirectory then
if (LSearchRec.Name <> '.') and (LSearchRec.Name <> '..') then
begin
CopyDirectory(aDirectory+LSearchRec.Name+'\',aDestinationDirectory+LSearchRec.Name+'\');
end;
//Dateien auflisten
if LSearchRec.Attr and faDirectory = 0 then
begin
Copyfile(PChar(aDirectory+LSearchRec.Name),PChar(aDestinationDirectory+LSearchRec.Name),true);
end;
until FindNext(LSearchRec) <> 0;
FindClose(LSearchRec);
end;
end;