//删除文件夹目录(非空)
bool DeleteDirectory(char* sDirName)
{
CFileFind tempFind;
wchar_t sTempFileFind[200] ;
wsprintf(sTempFileFind,L"%S\*.*",sDirName);
BOOL IsFinded = tempFind.FindFile(sTempFileFind);
while (IsFinded)
{
IsFinded = tempFind.FindNextFile();
if (!tempFind.IsDots())
{
wchar_t sFoundFileName[200];
wcscpy(sFoundFileName,(const wchar_t*)tempFind.GetFileName().GetBuffer(200));
if (tempFind.IsDirectory())
{
char sTempDir[200];
sprintf(sTempDir,"%s\%S\\",sDirName,sFoundFileName);
DeleteDirectory(sTempDir);
}
else
{
wchar_t sTempFileName[200];
wsprintf(sTempFileName,L"%S\%s",sDirName,sFoundFileName);
DeleteFile(sTempFileName);
}
}
}
tempFind.Close();
if(!RemoveDirectoryA(sDirName))
{
return FALSE;
}
return TRUE;
bool DeleteDirectory(char* sDirName)
{
CFileFind tempFind;
wchar_t sTempFileFind[200] ;
wsprintf(sTempFileFind,L"%S\*.*",sDirName);
BOOL IsFinded = tempFind.FindFile(sTempFileFind);
while (IsFinded)
{
IsFinded = tempFind.FindNextFile();
if (!tempFind.IsDots())
{
wchar_t sFoundFileName[200];
wcscpy(sFoundFileName,(const wchar_t*)tempFind.GetFileName().GetBuffer(200));
if (tempFind.IsDirectory())
{
char sTempDir[200];
sprintf(sTempDir,"%s\%S\\",sDirName,sFoundFileName);
DeleteDirectory(sTempDir);
}
else
{
wchar_t sTempFileName[200];
wsprintf(sTempFileName,L"%S\%s",sDirName,sFoundFileName);
DeleteFile(sTempFileName);
}
}
}
tempFind.Close();
if(!RemoveDirectoryA(sDirName))
{
return FALSE;
}
return TRUE;
}
例子:
char *m_strDir="C:\\Users\\Administrator\\Desktop\\新建文件夹\\tool\\";
if(PathFileExistsA(m_strDir))
DeleteDirectory((LPSTR)m_strDir);