Мне нужно проверить время последнего доступа к файлу. Я использую GetFileTime для чтения времени последнего доступа. Обратите внимание, что для этого требуется файл handle
в качестве первого аргумента. Что означает, прежде чем передать ручку GetFileTime
Мне нужно создать ручку. Поэтому я создал ручку с помощью CreateFile(MyFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
Так что с этим я не получаю время последнего доступа так же, как Accessed:
видно из свойств файла General Tab
, Это ожидается? или я что то не так сделал?
Вместо этого я получаю последнее время, когда последний раз щелкнул правой кнопкой мыши по файлу, чтобы проверить его свойства, но это не влияет Accessed:
поле в General Tab
свойства.
Примечание. Я включил обновление времени последнего доступа в
windows server
, это
код является частью модуля authz моего apache (mod_authz.so). Просветите меня.
Поскольку я не получил быстрый ответ здесь, я разместил этот вопрос на ServerFault — Ответ справедливо объяснен.
Это заявление от доктор.
Не все файловые системы могут записывать время создания и последнего доступа, а также
не все файловые системы записывают их одинаково. Например,
разрешение времени создания по FAT составляет 10 миллисекунд, а время записи
имеет разрешение 2 секунды и время доступа имеет разрешение 1
день, так что это действительно дата доступа. Файловая система NTFS задерживается
обновляет время последнего доступа к файлу до 1 часа после
последний доступ.
Исходя из этого, я полагаю, что на время последнего доступа к файлу нельзя полагаться, если только вы не ищите согласованность обновлений.
Мой опыт:
Но, тем не менее, API
GetFileTime
или жеGetFileAttributesEx
дать
Вы ожидаемый результат. Просто это не может быть визуализировано из файла
Properties
заAccessed:
поле подGeneral tab
,Я не знаю причину такого поведения, поэтому я задал этот вопрос.
использование GetFileAttributesEx
чтобы получить файл последний раз доступа. Требуется имя файла вместо HANDLE
,
BOOL WINAPI GetFileAttributesEx(
_In_ LPCTSTR lpFileName,
_In_ GET_FILEEX_INFO_LEVELS fInfoLevelId,
_Out_ LPVOID lpFileInformation
);