Aquí hay otra forma sin tener que recorrer uno a uno los archivos y sudirectorios:
Código Delphi
[-]
uses
ShellApi;
procedure CleanFolder(Folder: String);
var
FileOpInfo: TShFileOpStruct;
begin
FillChar(FileOpInfo, SizeOf(FileOpInfo), 0);
FileOpInfo.wFunc := FO_DELETE;
FileOpInfo.pFrom := PChar(Folder + '\*.*');
FileOpInfo.fFlags := FOF_NOCONFIRMATION;
ShFileOperation(FileOpInfo);
end;
// Saludos