CString Directory[2]={"D:\\报文备份\\PAT\\*.sql*","D:\\报文备份\\SRC\\*.src*"};
CTime FileCreateTime,CurrentTime;
CurrentTime=CTime::GetCurrentTime();
CTimeSpan TimeSpan;
int i=0;
        while(i>=0&&i<2)
{
CFileFind finder;
BOOL bWorking = finder.FindFile(Directory[i++]);
while (bWorking)   
{
bWorking=finder.FindNextFile();
if(finder.GetLastWriteTime(FileCreateTime))
{
TimeSpan=CurrentTime-FileCreateTime;
if (TimeSpan.GetDays()>=6)   
{
CString FileName = (LPCTSTR)finder.GetFileName();
DeleteFile(FileName);
}
}

}
}
}

解决方案 »

  1.   

    你调试下看看得到的DeleteFile(FileName);中的FileName每次是什么,当然路径不对,还删个锤子
      

  2.   

    删除成功后也后要通知资源管理器更新一下,楼主可以参考我写的《VC 如何使程序运行后自己删除自己》
    http://blog.csdn.net/morewindows/article/details/6682262
      

  3.   

    ..果然是这样...被这个函数的参数名字给欺骗了...
    BOOL DeleteFile(
      LPCTSTR lpFileName   // file name 摆明了应该叫filepathname 不怕误导人吗。。MSDN
    );
      

  4.   


    呵呵,基本上api只要是要求lpFileName 的都是要求路径的
      

  5.   

     CString FileName = finder.GetFilePath();//用全路径