vc如何删除一个指定目录中3以天前的所有文件,而3天内的所有文件都保留.就是说有一个目录中,总有文件被拷贝进来,为了不让硬盘满了,
所以要在程序中加入定时自动删除几天前历史文件的功能,
而新拷贝进来的文件却不被删除.谢谢

解决方案 »

  1.   

    说说我曾经用过的办法:
    在把文件拷贝进来保存的时候,文件名就是拷贝的日期+时间格式。如20080112_1200.xxx,代表2008年1月12日12点生成的文件。这样,自动删除的时候,根据文件名,一下子就判断出哪个该删,那个该保留了。
      

  2.   

    File f=new File("c:\\temp\\","ReadData.txt");
    if(f.exists()){
    out.print("最后修改时间:"+new Date(f.lastModified()));
    ----------------------------------------------------
    获得文件的修改时间, 把现在的时间GetSystemTime 得到, 相减, 大于3天就deleteFile ;
      

  3.   

    判断文件的修改时间,在做删除
    CTime   timeModify;
    CFile::GetStatus(sPathName, rStatus))
    timeModify = rStatus.m_mtime; //文件的时间
      

  4.   

    先用GetSystemTime取系统时间,再用SystemTimeToFileTime转为文件时间,再减10000000*60*60*24*3作为时间限制。
    Find文件的时候会返回文件时间,与时间限制相比,小于者删除。
      

  5.   


    HFILE hFile = (HFILE)::CreateFile("d:\\x.xxx",GENERIC_READ,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
    FILETIME creatTime;
    ::GetFileTime((HANDLE)hFile,&creatTime,NULL,NULL);
    SYSTEMTIME crtTimeSys,nowTime;
    ::FileTimeToSystemTime(&creatTime,&crtTimeSys);
    ::GetSystemTime(&nowTime);
    if (crtTimeSys.wYear < nowTime.wYear
    || crtTimeSys.wMonth < nowTime.wMonth
    || crtTimeSys.wDay < nowTime.wDay -3 )
    {
    //删除文件
    }