怎样删除一个目录 //删除某个目录及其子目录下所有文件的函数,因为RemoveDirectory删除的目录必须是空的,所以要自己写 bool CRestoreFactorySetting::DeleteDirectory(tstring & strDir) { CFileFind filefind; TCHAR szFileName[MAX_PATH]; memset(szFileName,0,sizeof(TCHAR)*MAX_PATH); _stprintf(szFileName,_T("%s//*.*"),strDir.c_str()); bool bIsfind=filefind.FindFile(szFileName); while (bIsfind) { bIsfind=filefind.FindNextFile(); //如果不是上级目录 if (!filefind.IsDots()) { TCHAR szSubFileName[MAX_PATH]; memset(szSubFileName,0,sizeof(TCHAR)*MAX_PATH); _stprintf(szSubFileName,_T("%s//%s"),strDir.c_str(),filefind.GetFileName().GetBuffer(0)); //如果是子目录,那么继续遍历 if (filefind.IsDirectory()) { //递归 DeleteDirectory(tstring(szSubFileName)); } else { //如果是文件,那么删除文件 DeleteFile(szSubFileName); } } } //关闭CFileFind filefind.Close(); if (!RemoveDirectory(strDir.c_str())) { cout<<"删除目录失败"<<endl; return false; } else { return true; } }