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