Регулировка времени поиска - PullRequest
0 голосов
/ 30 сентября 2011

Я делаю поиск по файлам.Мне нужно настроить время поиска от текущего времени (время файла) до текущего времени (время файла) меньше одной минуты.Как бы я это сделал?Это то, что я имею до сих пор.Спасибо.

struct file_data 
{ 
std::wstring sLastAccessTime; 
__int64 nFileSize; 
}; 

int GetFileList(const wchar_t *searchkey, std::map<std::wstring, file_data> &map) 
{ 
    WIN32_FIND_DATA fd; 
    HANDLE h = FindFirstFile(searchkey,&fd); 
    if(h == INVALID_HANDLE_VALUE) 
{ 
    return 0; // no files found 
} 
while(1) 
{ 
    wchar_t buf[128]; 
    FILETIME ft = fd.ftLastWriteTime; 
    SYSTEMTIME sysTime; 
    FileTimeToSystemTime(&ft, &sysTime); 
    wsprintf(buf, L"%d-%02d-%02d",sysTime.wYear, sysTime.wMonth, sysTime.wDay); 

    file_data filedata; 
    filedata.sLastAccessTime= buf; 
    filedata.nFileSize      = (((__int64)fd.nFileSizeHigh) << 32) + fd.nFileSizeLow; 

    map[fd.cFileName]= filedata; 

    if (FindNextFile(h, &fd) == FALSE) 
        break; 
} 
return map.size(); 
} 

int main() 
{ 
std::map<std::wstring, file_data> map; 
GetFileList(L"C:\\Users\\DS\\Downloads\\*.jpg", map); 
GetFileList(L"C:\\Users\\DS\\Downloads\\*.txt", map); 
int count = GetFileList(L"C:\\Users\\DS\\Downloads\\*.pdf", map);

for(std::map<std::wstring, file_data>::const_iterator it = map.begin(); 
    it != map.end(); ++it) 
{ 

1 Ответ

2 голосов
/ 30 сентября 2011

Используйте GetSystemTimeAsFileTime, чтобы получить текущее время в формате FILETIME.Вычтите 6000000000, чтобы вернуться во времени на одну минуту.Используйте CompareFileTime для сравнения времени каждого файла с этим значением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...