Извлечение времени последней записи


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

Демонстрационный пример

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

BOOL GetLastWriteTime(HANDLE hFile, LPTSTR 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, TEXT("%02d/%02d/%d  %02d:%02d"),
        stLocal.wMonth, stLocal.wDay, stLocal.wYear,
        stLocal.wHour, stLocal.wMinute);

    return TRUE;
}

 

 

Назад в оглавление
На главную страницу
Переведено 09.01.2009 22:09 ©Copyright V. Sokovikov
Hosted by uCoz