Советы по Delphi

         

Удаление непустого каталога


Пришло письмо от читателя:

Здравствуйте

Вот, понадобилась мне процедурка удаления непустого каталога. Нашел, не помню где. Включил в програму, работала, пока не стал использовать длинные имена каталогов (без пробелов, кстати). NT стала операцию выполнять, но криво (возбуждала исключение). Окончательно:

procedure TForm1.deletedirectory(dir:string);
var
sh:SHFILEOPSTRUCT;st:string;sr:tsearchrec;pst:pchar;begin
if
findfirst(dir,faDirectory,sr)=0 then begin
//added by medir:=longtoshortfilename(dir);//original codesh.Wnd:= Form1.handle;sh.wFunc:= FO_DELETE;Pst:=StrAlloc(Length(dir{sr.Name})+1);StrPLCopy(Pst,dir{sr.Name},Length(dir{sr.Name})+1);sh.pFrom:=pst;sh.pTo:= Nil;sh.fFlags:= FOF_NOCONFIRMATION or FOF_SILENT;sh.hNameMappings:= Nil;sh.lpszProgressTitle:= Nil;
SHFileOperation(sh);
StrDispose(Pst);end;
findclose(sr);end;

С уважением, [000744]



Содержание раздела