Как сопоставить 2 переменные FILETIME, чтобы увидеть, если файл старше 30 дней

Я хотел бы проверить, является ли папка старше 30 дней и иметь следующий код

static bool ExpiredDirectory(CComBSTR directory)
{
WIN32_FILE_ATTRIBUTE_DATA fileAttrData = {0};
GetFileAttributesEx(directory, GetFileExInfoStandard, &fileAttrData);

FILETIME ftCreatedDate = fileAttrData.ftCreationTime;
FILETIME now;
SYSTEMTIME nowst;
ULARGE_INTEGER t1, t2;
GetSystemTime(&nowst);
SystemTimeToFileTime(&nowst, &now);

---compare code goes here

}

Я хочу сравнить указанные выше переменные, чтобы увидеть, больше ли ftCreatedDate старше 30 дней

1

Решение

я решил проблему с помощью 30 дней Разница по системному времени. Оказывается, этот парень хотел сделать почти то же самое. Должен был увидеть это раньше

Мой код сейчас

WIN32_FILE_ATTRIBUTE_DATA fileAttrData = {0};
GetFileAttributesEx(directory, GetFileExInfoStandard, &fileAttrData);
FILETIME ftCreationTime = fileAttrData.ftCreationTime;
FILETIME now;
SYSTEMTIME nowst;
ULARGE_INTEGER t1, t2;

GetSystemTime(&nowst);
SystemTimeToFileTime(&nowst, &now);

memcpy(&t1, &ftCreationTime, sizeof(t1));
memcpy(&t2, &now, sizeof(t1));
ULONGLONG diff = (t1.QuadPart<t2.QuadPart)?(t2.QuadPart-t1.QuadPart):(t1.QuadPart-t2.QuadPart);

if(diff>30*24*60*60*(ULONGLONG)10000000)
{
return true;
}

return false;
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]