Hello Conor, After fiddling around with your routine I gave up and ended up with this which works well leaving directory clean of all files and directories thanks anyway.Al+
procedure TForm1.DelTree(dir: string); var Search: TSearchRec; fp: file of byte; ok: integer; begin ok := FindFirst(dir + '\*.*', faAnyFile, Search); while ok = 0 do begin if ((Search.Name <> '.') and (Search.Name <> '..')) then begin if ((Search.Attr and faDirectory) > 0) then begin DelTree(dir + '\' + Search.Name); // sub branch has been searched, so delete it RmDir(dir + '\' + Search.Name); end else begin // do something with the file assignfile(fp, dir + '\' + Search.Name); erase(fp); end; end; ok := FindNext(Search); end; FindClose(Search); end; --------------------------------------------------------------------------- New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] Website: http://www.delphi.org.nz To UnSub, send email to: [EMAIL PROTECTED] with body of "unsubscribe delphi" Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/