|
Работа с NetBIOS Фленов Михаил Xakep, номер #050, стр. 050-080-3 Ты спрашивал <???> Как удалять каталоги с поддиректориями. Какой командой? H: Следующая функция универсальна для удаления, переименования, копирования файлов (не забудь в раздел uses добавить модуль ShellAPI): function TForm1.DoSHFileOp(Handle: THandle; OpMode: UInt; Src, Dest: string; DelRicleBin: Boolean): Boolean; var Ret: integer; ipFileOp: TSHFileOpStruct; begin Screen.Cursor:=crAppStart; FillChar(ipFileOp, SizeOf(ipFileOp), 0); with ipFileOp do begin wnd := Handle; wFunc := OpMode; pFrom := pChar(Src); pTo := pChar(Dest); if DelRicleBin then fFlags := FOF_ALLOWUNDO else fFlags := FOF_NOCONFIRMMKDIR; fAnyOperationsAborted := False; hNameMappings := nil; lpszProgressTitle := ''; end; try Ret := SHFileOperation(ipFileOp); except Ret := 1; end; result := (Ret = 0); Screen.Cursor:=crDefault; end; //Следующая процедура - пример удаления файлов и каталогов procedure TForm1.Delete; const FileOpMode: array[0..3] of UInt =(FO_COPY, FO_DELETE, FO_MOVE, FO_RENAME); var i: integer; DelFName: string; DelReg:Boolean; begin DelFName:='c:\DirName'+#0; DoSHFileOp(Handle, FO_DELETE, DelFName, DelFName, true); end; |