bool CopyDirectory(const char* vSrcPath,const char* vDestPath)
{
if(0 == vSrcPath) return false;
if(0 == vDestPath) return false;
if(false == CreateDirectory(vDestPath))
return false;
string strDir = vSrcPath;
if(strDir[strDir.length()-1] != '\\')
strDir.append('\\');
strDir.append("*.*");
WIN32_FIND_DATA tFindData;
HANDLE hFile = FindFirstFile(strDir.c_str(),&tFindData);
if(INVALID_HANDLE_VALUE == hFile)
return false;
do
{
if(0 == strcmp(tFindData.cFileName,"."))
continue;
if(0 == strcmp(tFinddata.cFileName,".."))
continue;
string strSrc = vSrcPath;
string strDest = vDestPath;
if(strSrc[strSrc.length()-1 != '\\'))
strSrc.append("\\");
if(strDest[strDest.length()-1] != '\\')
strDest.append("\\");
strSrc += tFindData.cFileName;
strDest += tFindData.cFileName;
if(FILE_ATTRIBUTE_DIRECTORY == tFindData.dwFileAttributes)
{
if(false == CopyDirectory(strSrc.c_str(),strDest.c_str()))
return false;
}
else
{
if(FALSE == CopyFile(strSrc.c_str(),strDest.c_str(),FALSE))
return false;
}
}while(TRUE == FindNextFile(hFile,&tFindData))
return true;
}