¿Cómo copio un archivo de una carpeta a otra usando C++?Cómo copiar un archivo de una carpeta a otra carpeta
Respuesta
Si está dispuesto a utilizar las bibliotecas de Boost C++, eche un vistazo a filesystem::copy_file().
He aquí una pregunta anterior que cubre copy_file():
Ahora copy_file es parte de C++ start since C++ 14. – Tecoberg
Este debería ser el código mínimo requerido:
#include <fstream>
// copy in binary mode
bool copyFile(const char *SRC, const char* DEST)
{
std::ifstream src(SRC, std::ios::binary);
std::ofstream dest(DEST, std::ios::binary);
dest << src.rdbuf();
return src && dest;
}
int main(int argc, char *argv[])
{
return copyFile(argv[1], argv[2]) ? 0 : 1;
}
se glosa en torno a algunas cuestiones potencialmente complicados: el manejo de errores, el carácter de nombre de archivo codificaciones ... pero podría darle un comienzo.
El siguiente código copiará todo el archivo de un directorio a otro.
Su código de trabajo en C++
#include <windows.h>
/*
BOOL Copy(char r_szPath[1024], char r_szDir[1024])
{
char l_szTemp[2048] = {0};
sprintf(l_szTemp,"%s\%s"r_szPath,r_szDir);
if(IsDirectory(
}*/
#include <stdio.h>
#include<conio.h>
BOOL __Copy(char r_szSrcPath[1024],char r_szDesPath[1024])
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
char l_szTmp[1025] = {0};
memcpy(l_szTmp,r_szSrcPath,1024);
char l_szSrcPath[1025] = {0};
char l_szDesPath[1025] = {0};
memcpy(l_szSrcPath,r_szSrcPath,1024);
memcpy(l_szDesPath,r_szDesPath,1024);
char l_szNewSrcPath[1025] = {0};
char l_szNewDesPath[1025] = {0};
strcat(l_szTmp,"*");
hFind = FindFirstFile(l_szTmp, &FindFileData);
if(hFind == NULL) return FALSE;
do
{
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if(strcmp(FindFileData.cFileName,"."))
{
if(strcmp(FindFileData.cFileName,".."))
{
printf ("The Directory found is %s<BR>, FindFileData.cFileName);
sprintf(l_szNewDesPath,"%s%s\",l_szDesPath,FindFileData.cFileName);
sprintf(l_szNewSrcPath,"%s%s\",l_szSrcPath,FindFileData.cFileName);
CreateDirectory(l_szNewDesPath,NULL);
__Copy(l_szNewSrcPath,l_szNewDesPath);
}
}
}
else
{
printf ("The File found is %s<BR>, FindFileData.cFileName);
char l_szSrcFile[1025] = {0};
char l_szDesFile[1025] = {0};
sprintf(l_szDesFile,"%s%s",l_szDesPath,FindFileData.cFileName);
sprintf(l_szSrcFile,"%s%s",l_szSrcPath,FindFileData.cFileName);
BOOL l_bRet = CopyFile(l_szSrcFile,l_szDesFile,TRUE);
}
}
while(FindNextFile(hFind, &FindFileData));
FindClose(hFind);
return TRUE;
}
int main(int argc, char *argv[])
{
__Copy("C:\fcdb\","E:\sandy\");
getch();
return 0;
}
bienvenido a SO ... para mejorar su publicación considere eliminarlo o abordar estos problemas 1. este código no funciona, tiene un enjambre de errores en sus declaraciones if con respecto a '.' y '..' .. y no olvides el error tipográfico en tu inclusión donde omites un espacio. 2. no respondiste la pregunta en cuestión. Respondió una pregunta que creó. 3. la pregunta es para C++ y Ubuntu ... usar cosas específicas de Windows no es útil aquí 4. Por favor, sangrar su código para que sea legible – UpAndAdam
Con std::filesystem::copy_file
de C++ 17:
#include <exception>
#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
fs::path sourceFile = "path/to/sourceFile.ext";
fs::path targetParent = "path/to/target";
auto target = targetParent/sourceFile.filename(); // sourceFile.filename() returns "sourceFile.ext".
try // If you want to avoid exception handling, then use the error code overload of the following functions.
{
fs::create_directories(targetParent); // Recursively create target directory if not existing.
fs::copy_file(sourceFile, target, fs::copy_options::overwrite_existing);
}
catch (std::exception& e) // Not using fs::filesystem_error since std::bad_alloc can throw too.
{
std::cout << e.what();
}
}
He usado std::filesystem::path::filename
para recuperar el nombre del archivo fuente sin tener que escribir manualmente. Sin embargo, con std::filesystem::copy
se puede omitir el nombre del archivo que pasa a la ruta de destino en absoluto:
fs::copy(sourceFile, targetParent, fs::copy_options::overwrite_existing);
cambiar el comportamiento de ambas funciones con std::filesystem::copy_options
.
- 1. Archivo por lotes para copiar archivos de una carpeta a otra carpeta
- 2. Copie un archivo de una carpeta a otra utilizando vbscripting
- 3. ¿Cómo incluir un archivo de otra carpeta?
- 4. ¿Cómo mover/copiar un archivo de una carpeta a otra en Android usando phonegap?
- 5. ¿Cómo puedo mover un archivo a otra carpeta usando php?
- 6. copiando todo el contenido de la carpeta a otra carpeta utilizando el archivo por lotes?
- 7. Cómo copiar una carpeta y todas sus subcarpetas y archivos en otra carpeta
- 8. Cómo copiar el archivo de imagen de la galería a otra carpeta programáticamente en Android
- 9. IMAP: cómo mover un mensaje de una carpeta a otra
- 10. ¿Cómo uso Ant para copiar una carpeta?
- 11. Copie los permisos de una carpeta de Windows a otra
- 12. Copiar carpeta usando Copiar-Elemento - comportamiento diferente
- 13. ¿Cómo copiar un archivo a otra ruta?
- 14. Cómo copiar un archivo de un directorio a otro creando la carpeta si esa carpeta no existe
- 15. ¿Cómo agregar otra carpeta fuente de prueba a Maven y compilarla en una carpeta separada?
- 16. Xcode: cómo agregar un archivo a una referencia de carpeta
- 17. Mueva todos los archivos de una carpeta a otra carpeta con java
- 18. mover todos los archivos en una carpeta a otra?
- 19. Cómo cambiar el host local de xampp a otra carpeta (fuera de la carpeta xampp)?
- 20. Sublime Text 2: Copiar archivo al guardar/hacer copia de seguridad en otra carpeta
- 21. Cómo copiar recursos automáticamente a la carpeta de salida DCU
- 22. Copiar carpeta recursivamente, excluyendo algunas carpetas
- 23. Maven Para copiar el archivo jar de la carpeta local
- 24. ¿Cómo mueves un archivo de proyecto de Xcode 4.2 a otra carpeta?
- 25. Resolver referencias de ensamblados desde otra carpeta
- 26. ¿Cómo abrir una carpeta?
- 27. ¿Cómo copiar una carpeta, con exclusiones, con groovy nativo?
- 28. Java copiar una carpeta excluyendo algunos archivos interno
- 29. ¿Cómo puedo copiar clonar/duplicar una carpeta en S3?
- 30. ¿Cómo desbloqueo una carpeta/archivo en Linux?
¿Desea utilizar el comando 'cp' o escribir un clon para' cp'? –
quiero escribir un clon para cp – user1165435
no quiero ejecutar comandos. Después de una copia exitosa, quiero eliminar el archivo de la primera carpeta. necesitas ayuda. apreciar – user1165435