Я хочу часть функции, которая возьмет файл и продлится, сколько дней, если это было более старым, чем та дата, возвратится 0 иначе 1... Что-то как этот...
Например:
int IsOlder(TCHAR *filename, int days)
{
do operation.
If last modify date was older than days variable
return 0
else
return 1
}
Это - MS VC ++ 6 для Windows. Спасибо с этого времени!
В Windows есть функция API с именем GetFileTime ()
( документ в MSDN ), принимающая дескриптор файла в параметре и 3 FILETIME
структуры, которые должны быть заполнены информацией о дате и времени:
FILETIME creationTime,
lpLastAccessTime,
lastWriteTime;
bool err = GetFileTime( h, &creationTime, &lpLastAccessTime, &lastWriteTime );
if( !err ) error
Структура FILETIME
запутана, используйте функцию FileTimeToSystemTime ()
, чтобы преобразовать ее в SYSTEMTIME
структура, которая намного проще в использовании:
SYSTEMTIME systemTime;
bool res = FileTimeToSystemTime( &creationTime, &systemTime );
if( !res ) error
Затем вы можете использовать поля wYear
, wMonth
и т. д., чтобы сравнить с вашим количеством дней.
GetFileTime получает различные даты, относящиеся к файлу. Вот пример .
Вам нужно будет получить время последней записи и вычислить оттуда разницу в днях. Поскольку функция GetFileTime
возвращает довольно громоздкую структуру FILETIME
, вы, вероятно, захотите преобразовать ее в системное время ( struct SYSTEMTIME
) с помощью FileTimeToSystemTime
.