Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Manejar carpetas con delphi... (https://www.clubdelphi.com/foros/showthread.php?t=48636)

jorgegetafe 30-09-2007 11:17:03

Manejar carpetas con delphi...
 
Saludos, quiero hacer un programa que haga copias de seguridad de una carpeta y todo lo que este dentro de ella, (copiar y pegar vamos...) la pega es que sé copiar archivos con delphi pero no carpetas, asi que me gustaría saber como hacer esto:

-copiar carpetas (con todo su contenido)
-pegar carpetas
-renombrar carpetas
-pegar carpeta en una ruta dada.
-eliminar carpetas y todo su interior.

En un principio el programa que voy a crear y la carpeta que quiero copiar están en el mismo directorio.

Muchas gracias.

dec 30-09-2007 11:59:18

Hola,

Busca en los trucos, los foros y la ayuda de Delphi sobre "TSHFileOpStruct". Lo que no puedas hacer coméntalo por aquí. :)

jorgegetafe 02-10-2007 18:03:54

Muchas gracias, encontré justo lo que quería aqui: http://www.q3.nu/trucomania/truco.cgi?325&esp

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?



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.

gracias.

dec 03-10-2007 08:57:00

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.


La franja horaria es GMT +2. Ahora son las 13:40:29.

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