 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
jskolik Cdt

Registrado: 18 Oct 2003Mensajes: 1Ubicación: Colombia
|
Publicado: Jue 01 Nov, 2007 11:03 pm Asunto: copiar archivos |
|
|
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 |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 02 Nov, 2007 12:12 pm Asunto: |
|
|
¿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 |
|
 |
likibuay Master


Registrado: 24 Abr 2006Mensajes: 190Ubicación: COLOMBIA
|
Publicado: Mie 19 Ago, 2009 4:50 pm Asunto: |
|
|
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 |
|
 |
ifrit Master


Registrado: 12 Jun 2007Mensajes: 509Ubicación: La Habana, Cuba
|
Publicado: Mie 19 Ago, 2009 5:04 pm Asunto: |
|
|
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 = 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 |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|