Copiar un directorio (y sus subdirectorios y ficheros)  

Enviado Por: Radikal (Q3 Team)
Web : http://www.q3.nu
Email: radikal@q3.nu
Fecha: 30/08/20

Truco accedido 65 veces

 


Usaremos la funcion API ShFileOperation. Mirate la ayuda de dicha función, ya que permite varias opciones tal como no mostrar el progreso de la copia, permitir o no UNDO, etc...

  • Incluye ShellApi en el uses de tu form


     procedure TForm1.Button1Click(Sender: TObject);
    
       function CopiaTodo(Origen,Destino : String) :
       LongInt;
       var
         F : TShFileOpStruct;
         sOrigen, sDestino : String;
       begin
         Result := 0;
         sOrigen := Origen + #0;
         sDestino := Destino + #0;
    
         with F do
         begin
           Wnd   := Application.Handle;
           wFunc := FO_COPY;
           pFrom := @sOrigen[1];
           pTo   := @sDestino[1];
           fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION
         end;
    
         Result := ShFileOperation(F);
     end;
    
     begin
       CopiaTodo('c:\Delphi3\*.*','c:\kk');
     end;
    



    La ayuda de esta funcion está en el fichero Win32.hlp que tendrás por tu disco duro


    Actualizado el 30/08/2002 (Uses ShellApi)