Работа с 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;

Назад на стр. 050-080-2  Содержание