15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Получаем время последнего изменения файла.

Следующий пример получает время последнего изменения файла при помощи функции GetFileTime. Так же в примере показывается, как преобразовать это время относительно текущей временной зоны и создать строку с датой и временем, для того, чтобы показать пользователю.

 

// Возвращаемое значение - в случае успеха TRUE, иначе FALSE
// hFile      - дескриптор файла
// lpszString - указатель на буфер для строки

BOOL GetLastWriteTime(HANDLE hFile, LPSTR lpszString)
{
    FILETIME ftCreate, ftAccess, ftWrite;
    SYSTEMTIME stUTC, stLocal;

    // Получаем времена файла.
    if (!GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite))
        return FALSE;

    // Преобразуем время последнего изменения в локальное время.
    FileTimeToSystemTime(&ftWrite, &stUTC);
    SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);

    // Составляем строку с датой и временем.
    wsprintf(lpszString, "%02d/%02d/%d  %02d:%02d",
        stLocal.wDay, stLocal.wMonth, stLocal.wYear,
        stLocal.wHour, stLocal.wMinute);

    return TRUE;
}