Hola,
Cita:
tan solo una cosita, dice arriba del todo que se puede mostrar el progreso de la copia, me gustaría hacer eso, he mirado la ayuda de delphi y no entiendo nada... :-( alguien me puede decir como se hace eso?
|
Siguiendo el ejemplo que mencionas, se trata de jugar con las banderas (flags) en el miembro "fFlags" de la estructura "TShFileOpStruct". En la ayuda de Win32 está bastante bien explicado. Prueba con algo así:
Código Delphi
[-]
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 or FOF_SIMPLEPROGRESS;
end;
Result := ShFileOperation(F);
end;
begin
CopiaTodo('c:\Delphi3\*.*','c:\kk');
end;
Cita:
Por cierto, la copia de seguridad la quiero hacer en pendrive (origen y destino en el mismo usb) como lo puedo hacer? ya que en un ordenador la ruta sera por ejemplo:
'G:\Documentos' y si meto el mismo pendrive en otro ordenador puede ser: 'D:\Documentos' y claro, error!!!! como puedo solucionar esto? gracias.
|
¿Tu aplicación se ejecutará en el PenDrive? Si es así, puedes usar funciones como "GetDriveName" para averiguar la unidad ruta en que se encuentra tu publicación y a partir de ahí conformar la ruta que necesites.
Si tu aplicación no se ejecuta en el PenDrive... ahora mismo sólo se me ocurre lo más obvio: preguntar al usuario (¿hay usuario?) por la ruta en que quiere que se realize la copia de seguridad, comprobar su existencia y proceder.