hFile
идентифицирует файл, для которого извлекаются дата и время. Файловый дескриптор должен быть создан с доступом GENERIC_READ к файлу.
lpCreationTime
указывает на структуру типа
FILETIME, которая получает дату и время создания файла. Значение этого параметра может быть равно NULL, если приложению не требуется эта информация.
lpLastAccessTime
указывает на структуру типа
FILETIME, которая получает дату и время последнего доступа к файлу. Время последнего доступа включает в себя время, когда в последний раз: в файл записывалась информация, читалась информация из файла, или, в случае исполняемых файлов, файл запускался на исполнение. Значение этого параметра может быть равно NULL, если приложению не требуется эта информация.
lpLastWriteTime
указывает на структуру типа
FILETIME, указывает на структуру типа FILETIME, которая получает дату и время последней записи в файл. Значение этого параметра может быть равно NULL, если приложению не требуется эта информация.
Файловые системы FAT и NTFS поддерживают время создания файла,
время последнего доступа к файлу и время последней записи в файл.
Точность хранения времени
-
Точность, с которой сохраняются значения времени для файлов, зависит от используемой операционной системы, файловой системы, сетевой конфигурации. Подробнее см. замечания к структуре FILETIME.
Семейство Windows NT
-
Когда Windows NT создает список каталогов (Проводник, команда DIR, и т.д.) в разделе
NTFS, она модифицирует дату/время последнего доступа на каждом
обнаруженном каталоге. Если каталогов очень много, это может
повлиять на эффективность.
Семейство Windows NT на файловой системе NTFS позволяет отключать дату/время последнего доступа
(см. Disable the NTFS Last Access Time Stamp)
-
Если вы удалите или переименуете файл, а затем достаточно быстро восстановите его, Windows NT может
восстановить из кеша некоторые данные о файле: длинное и короткое имя файла, а также дату его создания.
Следующий пример показывает как получить дату/время модификации файла в виде строки (Windows NT/2000).
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;
}