#include "stdafx.h"
#include "afx.h"
bool DeleteDirectory(char* sDirName,bool flag=TRUE)
{
CFileFind tempFind;
char sTempFileFind[200] ;
sprintf(sTempFileFind,"%s*.*",sDirName);
BOOL IsFinded = tempFind.FindFile(sTempFileFind);
while (IsFinded)
{
IsFinded = tempFind.FindNextFile();
if (!tempFind.IsDots())
{
char sFoundFileName[200];
strcpy(sFoundFileName,tempFind.GetFileName().GetBuffer(200));
if (tempFind.IsDirectory())
{
char sTempDir[200];
sprintf(sTempDir,"%s\\%s",sDirName,sFoundFileName);
DeleteDirectory(sTempDir);
}
else
{
char sTempFileName[200];
sprintf(sTempFileName,"%s\\%s",sDirName,sFoundFileName);
DeleteFile(sTempFileName);
}
}
}
tempFind.Close();
if(flag)
{
if(!RemoveDirectory(sDirName))
{
return FALSE;
}
}
return TRUE;
}
int main(int argc, char* argv[])
{
char m_strDir[]="d:\\guoguo\\";
DeleteDirectory(m_strDir,FALSE);
return 0;
}
当 DeleteDirectory(m_strDir,FALSE);不会删除m_strDir这个目录
当 DeleteDirectory(m_strDir,TRUE);会删除m_strDir这个目录
注:VC6编译的时候会出现错误,
解决方法:指定Code Generation中的Use run-time library 要使用多线程版本