Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Copiar carpeta(s) con ProgressBar (https://www.clubdelphi.com/foros/showthread.php?t=4761)

doverzhoff 27-10-2003 17:54:52

Copiar carpeta(s) con ProgressBar
 
Hola a todos:
Gracias por su atencion en mis anteriores preguntas me han dervido mucho sus respuestas, el motivo por el vuelvo a solicitar su ayuda es la siguiente:
Estoy diseñando un programa para que ma haga respaldos de informacion de una carpeta a otra, esta operacion la hago con ShFileOpStruct, necesito saber si es una buena forma de hacerlo, y de ser buena como puedo hacer para indicar con una ProgressBar cuanto lleva del total, aparte si son varias carpetas que la misma ProgressBar sea para el total de todas las carpetas; se que con ShFileOpStruct puede mostrar una ventana de windows con el progreso de la operacion, pero no es lo que necesito, pero muestra el progreso de la carpeta que se esta copiando pero no del total.

Espero haberme explicado y ojalá me puedan ayudar.
Gracias.

dvz

delphi.com.ar 27-10-2003 19:51:24

Puedes usar CopyFileEx, que utiliza un CallBack para poder generar el progressbar a mano, y calcular el tamaño total de todos los archivos a copiar, para definir el valor máximo del progress.

Saludos!

marcoszorrilla 27-10-2003 23:54:22

Mírate esta función:

Copia ficheros con Progreso.


Código:

procedure CopyFiles(const Source,Destination: String);
var
SHFileOpStruct : TSHFileOpStruct;
begin
if FileExists(Source) then
begin
FillChar(SHFileOpStruct,SizeOf(TSHFileOpStruct),#0);
    with SHFileOpStruct do begin
Wnd:=Application.Handle;
      wFunc:=FO_COPY;
      fFlags:=FOF_ALLOWUNDO;
      hNameMappings:=nil;
      pFrom:=PChar(Source+#0+#0);
      pTo:=PChar(Destination+#0+#0);
    end;
ShFileOperation(SHFileOpStruct);
 end;
end;

Un Saludo.

koalasoft 27-12-2011 23:46:30

Cita:

Empezado por marcoszorrilla (Mensaje 19007)
Mírate esta función:

Copia ficheros con Progreso.


Código:

procedure CopyFiles(const Source,Destination: String);
var
SHFileOpStruct : TSHFileOpStruct;
begin
if FileExists(Source) then
begin
FillChar(SHFileOpStruct,SizeOf(TSHFileOpStruct),#0);
    with SHFileOpStruct do begin
Wnd:=Application.Handle;
      wFunc:=FO_COPY;
      fFlags:=FOF_ALLOWUNDO;
      hNameMappings:=nil;
      pFrom:=PChar(Source+#0+#0);
      pTo:=PChar(Destination+#0+#0);
    end;
ShFileOperation(SHFileOpStruct);
 end;
end;

Un Saludo.

Cómo seria un ejemplo para poder usar este procedimiento? y cuando dices "con progreso" te refieres a una barra de progreso o como? .. igual si funciona para varios archivos por asi decirlo, todos los archivos con la extensión .dbf ..

Saludos !! :D


La franja horaria es GMT +2. Ahora son las 22:12:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi