转载
void CTestDlg::DeleteDirectory(CString strDir)
{
if(strDir.IsEmpty())
return;
//首先删除文件及子文件夹
CFileFind ff;
BOOL bFound = ff.FindFile(strDir+"\\*", 0);
while(bFound)
{
bFound = ff.FindNextFile();
CString filename = ff.GetFileName();
if(filename=="."||filename=="..")
continue;
//文件创建时间
CTime cCreateTime,cCurTime=CTime::GetCurrentTime();
ff.GetCreationTime(cCreateTime);
CTimeSpan ts=cCurTime-cCreateTime;
ULONG days = ts.GetDays();
//删除90天之前的数据
if (days<90)
continue;
//去掉文件(夹)只读等属性
SetFileAttributes(ff.GetFilePath(), FILE_ATTRIBUTE_NORMAL);
if(ff.IsDirectory())
{
//递归删除子文件夹
DeleteDirectory(ff.GetFilePath());
RemoveDirectory(ff.GetFilePath());
}
else
{
//删除文件
DeleteFile(ff.GetFilePath());
}
}
ff.Close();
//然后删除该文件夹
RemoveDirectory(strDir);
}