Пример ниже использует функцию 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;
}
|