SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Pyroman en Miércoles 22 de Septiembre de 2004, 22:35

Título: Copiar Archivos
Publicado por: Pyroman en Miércoles 22 de Septiembre de 2004, 22:35
Holas, quisiera saber si alguien sabe como copiar archivos de una carpeta a otra durante la ejecucion de un programa al pinchar un boton.Gracias ;)
Título: Re: Copiar Archivos
Publicado por: _Viktor en Jueves 23 de Septiembre de 2004, 20:17
holas, prueba esto:

Código: Text
  1. void __fastcall CopiarCarpeta(AnsiString Origen, AnsiString Destino)
  2. {
  3.     SHFILEOPSTRUCT sfos = {0,};
  4.     ZeroMemory(&sfos, sizeof(sfos));
  5.     sfos.hwnd = NULL;
  6.     sfos.wFunc = FO_COPY;
  7.  
  8.       // Añadimos estas dos líneas
  9.       Origen.SetLength(Origen.Length()+1);
  10.       Origen[Origen.Length()] = '\0';
  11.  
  12.     sfos.pFrom = Origen.c_str();
  13.     sfos.pTo = Destino.c_str();
  14.     sfos.fFlags = FOF_NOCONFIRMMKDIR | FOF_NOCONFIRMATION;
  15.     SHFileOperation(&sfos);
  16. }
  17.  
  18. void __fastcall TForm1::Button1Click(TObject *Sender)
  19. {
  20.    CopiarCarpeta("c:\\dir_origen", "d:\\dir_destino");
  21.   
  22. }
  23.  

Saludos!
Título: Re: Copiar Archivos
Publicado por: Pyroman en Lunes 27 de Septiembre de 2004, 20:25
Ok muchas gracias,me ha funcionado.
Relacionado con lo anterior, estoy haciendo 1 aplicacion que maneja una base de datos Paradox, dicha bd la almaceno en una carpeta y quiero que mi aplicacion haga una copia de la misma en otro directorio(una especie de copia de seguridad) y tb que restaure la bd desde distintas copias pero me da un error de violacion de acceso. He provado desactivando la sesion, cerrando la bd y el componente BatchMove pero siempre el mismo error.¿Se puede hacer lo que pretendo?
Cada copia la guardo con un alias distinto para poder acceder pero no hay manera... <_<