Обновляет ли «щелчок правой кнопкой мыши по файлу» время последнего доступа?

Мне нужно проверить время последнего доступа к файлу. Я использую 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). Просветите меня.

0

Решение

Поскольку я не получил быстрый ответ здесь, я разместил этот вопрос на ServerFault — Ответ справедливо объяснен.

Это заявление от доктор.

Не все файловые системы могут записывать время создания и последнего доступа, а также
не все файловые системы записывают их одинаково. Например,
разрешение времени создания по FAT составляет 10 миллисекунд, а время записи
имеет разрешение 2 секунды и время доступа имеет разрешение 1
день, так что это действительно дата доступа. Файловая система NTFS задерживается
обновляет время последнего доступа к файлу до 1 часа после
последний доступ.

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

Мой опыт:

Но, тем не менее, API GetFileTime или же GetFileAttributesEx дать
Вы ожидаемый результат. Просто это не может быть визуализировано из файла
Properties за Accessed: поле под General tab,

Я не знаю причину такого поведения, поэтому я задал этот вопрос.

1

Другие решения

использование GetFileAttributesEx чтобы получить файл последний раз доступа. Требуется имя файла вместо HANDLE,

BOOL WINAPI GetFileAttributesEx(
_In_  LPCTSTR                lpFileName,
_In_  GET_FILEEX_INFO_LEVELS fInfoLevelId,
_Out_ LPVOID                 lpFileInformation
);
0

По вопросам рекламы [email protected]