Verzeichnisse löschen

Hallo!
Folgendes Problem:
Ich sichere Dateien in einem verzeichnis über das Netz.
Ich stelle eine Verbindung mit einem Netzlaufwerk her und kopiere die zu sichernden Daten nach
„Z:\1234\03072001_001*“
die zweite sicherung dann(gleicher Tag)
„Z:\1234\03072001_002*“
usw… da ich aber nicht 1000 Sicherungen brauche, lösche ich ab 10 Stck die letzten…
Aber ein leerer Verzeichnisbaum bleibt immer übrig, und zwar der, in dem zuletzt Dateien gelöscht wurden!

ich lösche sämtliche Dateien aus den Verzeichnissen:

if StrlDateien1.Count > 0 then
begin
for i:= 0 to (StrlDateien1.Count-1) do
begin
Lastfile := StrlDateien1[i];
FileSetAttr(LastFile,0);
DeleteFile(Lastfile);
end;
end;

und würde dann gerne sämtliche Verzeichnisse löschen:

for i:= bla bla…

LastDir := StrlVerzeichnisse2[i];
RemoveDir(LastDir);

aber es geht nicht, erst beim zweiten Programmstart können die Verzeichnisse, in denen grade noch Dateien waren, gelöscht werden. wie bewege ich also den „Curser“ aus dem Verzeichniss oder woran liegt das ganze?

procedure DeleteFiles(const Path, Mask: string; SubDirectories: Boolean);
var
Result: integer;
SR: TSearchRec;
begin
if FindFirst(Path + Mask, faAnyFile - faDirectory, SR) = 0 then begin
repeat
if not SysUtils.DeleteFile (Path + SR.Name) then begin
FileSetAttr(Path + SR.Name, 0); {Alle Dateiattribute löschen}
SysUtils.DeleteFile(Path + SR.Name);
end;{then}
until FindNext(SR) 0;
SysUtils.FindClose(SR);
end;{then}
{ Rekursiv durch alle Unterverzeichnisse }
if SubDirectories then begin
if SysUtils.FindFirst(Path + ‚*.*‘, faDirectory, SR) then begin
repeat
if (SR.Name ‚.‘) and (SR.Name ‚…‘) then begin
FileSetAttr(Path + SR.Name, faDirectory);
DeleteFiles(Path + SR.Name + ‚‘, Mask, true);
RmDir(Path + SR.Name); {Leeres Verzsichnis löschen}
end;{then}
until FindNext(SR) 0;
SysUtils.FindClose(SR);
end;{then}
end;{then}
end; { -> Simon’s FAQ http://www.pics-software.de}