MFC剔除某个文件夹下的所有内容

MFC删除某个文件夹下的所有内容
MFC删除某个文件夹下的所有内容,但不删除该文件夹。
我现在用如下函数,递归删除该文件夹及其中的内容,然后调用CreateDirectory重新创建该文件夹。
有什么更好的办法吗?谢谢大家。

void CDirectory::DeleteDirectory(const CString &strPath)
{
CFileFind tempFind;
TCHAR sTempFileFind[MAX_PATH] = { 0 };

wsprintf(sTempFileFind, _T("%s\\*.*"), strPath);
BOOL IsFinded = tempFind.FindFile(sTempFileFind);

while (IsFinded) 

IsFinded = tempFind.FindNextFile(); 

if (!tempFind.IsDots()) 

TCHAR sFoundFileName[200] = { 0 }; 
_tcscpy(sFoundFileName, tempFind.GetFileName().GetBuffer(200)); 

if (tempFind.IsDirectory()) 

TCHAR sTempDir[200] = { 0 }; 
wsprintf(sTempDir, _T("%s\\%s"),strPath, sFoundFileName); 
DeleteDirectory(sTempDir); 

else 

TCHAR sTempFileName[200] = { 0 }; 
wsprintf(sTempFileName, _T("%s\\%s"), strPath, sFoundFileName); 
DeleteFile(sTempFileName); 




tempFind.Close(); 

if(!RemoveDirectory(strPath))
return false;

return true;
}

------解决方案--------------------
貌似没有更好的办法了。静等高手出现MFC剔除某个文件夹下的所有内容
------解决方案--------------------
怎么回事??重发一遍
void  DeleteDirectory(CString  strDir)     
{     
if(strDir.IsEmpty())     
return;     

//   首先删除文件及子文件夹     
CFileFind   ff;     
BOOL   bFound  =  ff.FindFile(strDir+L"\\*", 0);     
while(bFound)     
{     
bFound  =  ff.FindNextFile();     
if(ff.GetFileName()=="."
------解决方案--------------------
ff.GetFileName()=="..")     
continue;     
//   去掉文件(夹)只读等属性     
SetFileAttributes(ff.GetFilePath(), FILE_ATTRIBUTE_NORMAL);     
if(ff.IsDirectory())     
{     
//   递归删除子文件夹     
DeleteDirectory(ff.GetFilePath());     
RemoveDirectory(ff.GetFilePath());     
}     
else     
{     
//   删除文件     
DeleteFile(ff.GetFilePath());     
}     
}     
ff.Close();     

//   然后删除该文件夹     
//RemoveDirectory(strDir);     

------解决方案--------------------
 if(!RemoveDirectory(strPath))
        return false;


把这就话去掉不就行了
------解决方案--------------------
我的文件处理类中的一个处理函数:

// 删除目录中全部文件
BOOL CFileManage::DeleteAll(CString dirName)
{
CFileFind tempFind;
CString foundFileName;
CString tempFileFind=dirName+_T("*.*");
BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);
while(IsFinded)
{
IsFinded=(BOOL)tempFind.FindNextFile();
if(!tempFind.IsDots())
{
foundFileName=tempFind.GetFileName();
CString tempFileName=dirName+_T("\\")+foundFileName;
DeleteFile(tempFileName); // 删除文件
}
}
tempFind.Close();

return TRUE;
}

------解决方案--------------------
RemoveDirectory(%%1);
CreateDirectory(%%1,NULL);
------解决方案--------------------
SHFILEOPSTRUCT Op; 

ZeroMemory(&Op, sizeof(Op)); //删除文件夹
Op.hwnd = NULL; 
Op.wFunc = FO_DELETE; 
char deletedir [1200];
memset(deletedir,0,1200);
sprintf(deletedir,"c:\\log");
Op.pFrom = deletedir;             // 这里放上文件名即可 
Op.fFlags = FOF_ALLOWUNDO 
------解决方案--------------------
 FOF_NOCONFIRMATION; 

SHFileOperation(&Op);