Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

copiar archivos

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: copiar archivos Responder citando

buenas tardes, tengo un pequeño inconveniente, necesito copiar algunos archivos de un directorio origen a uno destino, y aun cuando estaba mirando una funcion que hace rato pasaron por el foro no me sirvio la revise y no se por que no funciona. por el momento solucione el problemita llamando la funcion "system" de Windows, no me parece que sea la mejor solucion pero por el momento no se me ocurrio otra. me gustaria saber si alguien me pudiera dar una guia.

la funcion que pasaron hace un tiempo fue esta:

SHFILEOPSTRUCT sfos;
sfos.hwnd = NULL; // O un handle de ventana
sfos.wFunc = FO_COPY;
sfos.pFrom = sOrigen.c_str();
sfos.pTo = sDestino.c_str();
sfos.fFlags = FOF_FILESONLY; //FOF_NOCONFIRMMKDIR;
SHFileOperation(&sfos);

gracias jskolik
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

¿Y por qué no usas, por ejemplo, CopyFile, MOveFile o MoveFileEx? Las tres son del API de Windows. De la ayuda cd C++:
Código:
BOOL CopyFile(
    LPCTSTR lpExistingFileName,   // pointer to name of an existing file
    LPCTSTR lpNewFileName,   // pointer to filename to copy to
    BOOL bFailIfExists    // flag for operation if file exists
   );

BOOL MoveFile(
    LPCTSTR lpExistingFileName,   // address of name of the existing file 
    LPCTSTR lpNewFileName    // address of new name for the file
   );

BOOL MoveFileEx(
    LPCTSTR lpExistingFileName,   // address of name of the existing file 
    LPCTSTR lpNewFileName,   // address of new name for the file
    DWORD dwFlags    // flag to determine how to move file
   );

_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Angel buen día... una pregunta esa función sirve en red?
he intentado y no me funciona debo agregar algo ?
_________________
><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Con el permiso de _Leo
yo modifique la funcion de _Leo para recorrer los directorios y mostrarlos y ahora la utilizo para copiar y pegar incluso carpetas y no solo ficheros.
Aqui se las dejo, esta modificada segun mi conveniencia en su momento m, pero es facil modificarla al gusto de las necesidades

Código:
/*********funcion para copiar ficheros tipo salva - desarrollada por
_Leo (foro ryanstudios) y modificada por Reinier Feria y Michel Reyes
le paso un boleano como referencia para saber si se esta copiando o no*/

void BackupDir(AnsiString dirOrigen,AnsiString dirDestino, TStatusBar *sbar,
    bool &copy) {
 copy = true;
 TTime now, end;
 if (!DirectoryExists(dirDestino))
    CreateDir(dirDestino);
    Application->ProcessMessages();

    TSearchRec sr;
    bool finalizado = FindFirst(dirOrigen + "\\*.*", faAnyFile, sr);

    while (!finalizado){
        //pausa y continuar copia
      Application->ProcessMessages();
      if(sr.Name != "." && sr.Name != ".."){

            if (sr.Attr & faDirectory){
                BackupDir(dirOrigen + "\\" + sr.Name, dirDestino+ "\\" + sr.Name, sbar, copy);
                Application->ProcessMessages();
            }
            else{
                Application->ProcessMessages();
                sbar->Panels->Items[0]->Text = "Copiando: " + sr.Name;
                sbar->Panels->Items[1]->Text = IntToStr(sr.Size) + " KB";
                AnsiString ficherofuente = dirOrigen + "\\" + sr.Name;
                AnsiString ficheroDestino=dirDestino+"\\" + sr.Name;
                CopyFile(ficherofuente.c_str(),ficheroDestino.c_str(),0);
                Application->ProcessMessages();
           }
        }
       finalizado = FindNext(sr);
       Application->ProcessMessages();
   }
    FindClose(sr);
    copy = false;
}

_________________
Todos somos ignorantes, lo que no todos ignoramos lo mismo...
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

likibuay escribió:
Angel buen día... una pregunta esa función sirve en red?

Yo las uso en red sin mayor problema que tener los permisos pertinentes.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.