Una manera de borrar toda una carpeta sin necesidad de recorrer recursivamente todas las subcarpetas es utilizando la función ShFileOperation:
Código Delphi
[-]
uses
ShellApi;
procedure DeleteFolder(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