Использование функций Windows
- 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; 
            
Комментарии