파일을 검색하고 있습니다. 검색 시간을 현재 시간 (파일 시간)에서 현재 시간 (파일 시간)까지 1 분 이내로 조정해야합니다. 어떻게하면 좋을까요? 이것은 내가 지금까지 가지고있는 것입니다. 고맙습니다.검색 시간 조정
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 분 미만의 파일을 가져오고 싶습니다. 고맙습니다. –
꽤 불분명 함. SystemTimeToFileTime을 사용하고 60 * 1000 * 10000LL을 뺍니다. 1 분 전의 FILETIME입니다. –
지금 나는 모든 pdf, txt 및 jpg fileds를 디렉토리에서 가져오고 있습니다. 그러나 나는 단지 1 분 또는 그 이하의 것들만 원한다. 또는 우리는 1 분 또는 그 이하의 젊은 말을해야합니까! –