16,471
社区成员
发帖
与我相关
我的任务
分享
//删除指定文件夹
bool CYourClass::DeleteFolder(wchar_t* pwcPath )
{
if(pwcPath == NULL)
return false;
wchar_t wcPath[MAX_PATH] = {0};
wcscpy_s(wcPath,MAX_PATH,pwcPath);
wcscat_s(wcPath,MAX_PATH,_T("\\*.*"));
WIN32_FIND_DATA FindFileData;
ZeroMemory(&FindFileData,sizeof(WIN32_FIND_DATA));
HANDLE hFindFile = FindFirstFile(wcPath,&FindFileData);
if(hFindFile == INVALID_HANDLE_VALUE)
return false;
BOOL bContinue = true;
while (bContinue != false)
{
//bIsDots为真表示是.或..
bool bIsDots = (wcscmp(FindFileData.cFileName,_T(".")) == 0 || wcscmp(FindFileData.cFileName,_T("..")) == 0);
if ((FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0 && bIsDots == false)
{
//是目录,就再进入该目录
wcscpy_s(wcPath,MAX_PATH,pwcPath);
wcscat_s(wcPath,MAX_PATH,_T("\\"));
wcscat_s(wcPath,MAX_PATH,FindFileData.cFileName);
DeleteFolder(wcPath);
//寻找下一文件
bContinue = FindNextFile(hFindFile,&FindFileData);
continue;
}
if (bIsDots == false)
{
//是文件删除之
wcscpy_s(wcPath,MAX_PATH,pwcPath);
wcscat_s(wcPath,MAX_PATH,_T("\\"));
wcscat_s(wcPath,MAX_PATH,FindFileData.cFileName);
DeleteFile(wcPath);
}
//寻找下一文件
bContinue = FindNextFile(hFindFile,&FindFileData);
}
FindClose(hFindFile);
//删除空目录
RemoveDirectory(pwcPath);
return true;
}