Копирование файлов со стандартным диалоговым
окошком.
Компилятор: Delphi
Следующий пример демонстрирует использование
функции SHFileOperation для копирования нескольких
файлов и отображения стандартного системного
диалога копирования файлов. Следующие флаги так
же можно использовать для удаления, перемещения
и переименования группы файлов.
TO_COPY
FO_DELETE
FO_MOVE
FO_RENAME
Замечание: Буфер, который содержит имена файлов
для копирования должен заканчиваться двумя
нулями;
Пример:
uses ShellAPI;
procedure TForm1.Button1Click(Sender: TObject);
var
Fo : TSHFileOpStruct;
buffer : array[0..4096] of char;
p : pchar;
begin
FillChar(Buffer, sizeof(Buffer), #0);
p := @buffer;
p := StrECopy(p, 'C:\DownLoad\1.ZIP') + 1;
p := StrECopy(p, 'C:\DownLoad\2.ZIP') + 1;
p := StrECopy(p, 'C:\DownLoad\3.ZIP') + 1;
StrECopy(p, 'C:\DownLoad\4.ZIP');
FillChar(Fo, sizeof(Fo), #0);
Fo.Wnd := Handle;
Fo.wFunc := FO_COPY;
Fo.pFrom := @Buffer;
Fo.pTo := 'D:\';
Fo.fFlags := 0;
if ((SHFileOperation(Fo) <> 0) or
(Fo.fAnyOperationsAborted <> false)) then
ShowMessage('Cancelled')
end;
|