如何将文件从一个文件夹复制到另一个文件夹

如何使用C ++将文件从一个文件夹复制到另一个文件夹?

这应该是所需的最小代码:

 #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; } 

它掩盖了一些潜在的复杂问题:错误处理,文件名字符编码…但可以给你一个开始。

如果您愿意使用Boost C ++库,请查看filesystem :: copy_file() 。

以下是关于copy_file()的一个问题:

如何在boost :: filesystem中使用copy_file?

下面的代码将所有的文件从一个目录复制到另一个。

它在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; }