递归删除目录及目录子目录

来源:岁月联盟 编辑:exp 时间:2012-09-04
bool RemoveDir(const char* szFileDir)
{
 std::string strDir = szFileDir;
 if (strDir.at(strDir.length()-1) != '//');
  strDir += '//';
 WIN32_FIND_DATA wfd;
 HANDLE hFind = FindFirstFile((strDir + "*.*").c_str(),&wfd);
 if (hFind == INVALID_HANDLE_VALUE)
  return false;
 do
 {
  if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
  {
   if (stricmp(wfd.cFileName,".") != 0 &&
    stricmp(wfd.cFileName,"..") != 0)
    RemoveDir( (strDir + wfd.cFileName).c_str());
  }
  else
  {
   DeleteFile( (strDir + wfd.cFileName).c_str());
  }
 }
 while (FindNextFile(hFind,&wfd));
 FindClose(hFind);
 RemoveDirectory(szFileDir);
 return true;
}