按创建日期删除指定日期之前的文件夹及文件夹下的所有子目录

时间:2022-11-13 12:30:35
转载
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); }