用MFC的CTime和CTimeSpan管理一个文件删除过期文件

文件管理类里需要一个删除规定路径下超过时间的备份文件,可以使用MFC的CTime类和CTimeSpan类实现该功能

void FileManage::DelBackupFile(int limit_time)
{
    CString file_path = "..\\databak\\";   
    CString file_dir[] = {"abnormal\\", "upframe\\"};
    CString file_type = "*.txt";
    CString file_name;
    CString m_Year;
    CString m_Month;
    CString m_Day;
    int year, month, day;
    CTimeSpan spandays;
    CTime  cur_time = CTime::GetCurrentTime();


    _finddata_t fileDir;
    long lfDir;

    for(int i=0; i<5; i++) {
        if((lfDir = _findfirst(file_path+file_dir[i]+file_type, &fileDir))!= -1) {
            do{
                file_name=fileDir.name;
                m_Year = file_name.Mid(4, 4);
                m_Month = file_name.Mid(8, 2);
                m_Day = file_name.Mid(10, 2);

                year = _ttoi(m_Year);
                month = _ttoi(m_Month);
                day = _ttoi(m_Day);
                CTime   file_time(year,month,day,0,0,0);
                spandays = cur_time - file_time;
                if(spandays.GetDays() >= limit_time)
                    remove(file_path+file_dir[i]+fileDir.name);
            }while(_findnext(lfDir, &fileDir) == 0);
        }
        _findclose(lfDir);
    }
}

若要是win32控制台程序,要使用MFC中的类需要使项目属性->配置属性->常规->MFC的使用为使用静态库中的MFC,且头文件中包含 afxwin #include

你可能感兴趣的:(C++)