windows下copy文件夹及其子目录和文件的函数如下:
void CopyFile(CString srcDir, CString destDir)
{
CFileFind curObject;
CString allFile;
BOOL bHaveFound = FALSE;
allFile.Format("%s//*.*",srcDir);
bHaveFound = curObject.FindFile(allFile);
while(bHaveFound)
{
bHaveFound = curObject.FindNextFile();
if(!curObject.IsDots())
{
CString foundFileName;
foundFileName=curObject.GetFileName();
if(curObject.IsDirectory())
{
CString tmpDestDir;
tmpDestDir.Format("%s//%s",destDir, foundFileName);
::mkdir(tmpDestDir);
CString tmpSrcDir;
tmpSrcDir.Format("%s//%s",srcDir,foundFileName);
CopyFile(tmpSrcDir, tmpDestDir);
}
else
{
CString srcFileName1,destFileName2;
srcFileName1.Format("%s//%s",srcDir,foundFileName);
destFileName2.Format("%s//%s",destDir,foundFileName);
::CopyFile(srcFileName1,destFileName2,FALSE);
}
}
}
curObject.Close();
}
1.函数中用到CString,CFileFind是mfc中的类,如果你建立的vc工程不是mfc的工程,那么需要在所有头文件包含之前先包含
2.函数中用到的mkdir函数需要包含文件