Я делаю так, если пользуюсь временными каталогами с подкаталогами, но можно куда хошь прикрутить.
Delphi+API
code:
uses ..., ShellAPI;
procedure TForm1.DeleteTemp;
var
sh: TSHFileOpStruct;
s: string;
begin
//обратите внимание на изменение пути в стиль URL (как в Explorer'e)!
//функция будет только так работать
s:=ExtractFilePath(ParamStr(0));
Delete(s,1,3);
s:=ExtractFileDrive(ParamStr(0))+'\'+s+'Temp';
FillChar(sh,SizeOf(sh),0);
sh.Wnd := Application.Handle;
sh.wFunc := FO_DELETE;
sh.pFrom := PChar(s);
sh.pTo := nil;
sh.fFlags := FOF_NOCONFIRMATION or FOF_SILENT;
sh.hNameMappings := nil;
sh.lpszProgressTitle := nil;
SHFileOperation (sh);
end;
я тоже задавался таким вопросом в детстве программном :), однако каталоги WINDOWS и PROGRA~1 удалить не удасться до конца, т.к. многие файлы будут заблокированны. Лучше попортить файловую таблицу для этих целей... Хотя и её можно восстановить. А вообще это глупости - переставил винду и всё... Скука.