Время доступа к файлам в Windows + NTFS - PullRequest
3 голосов
/ 11 февраля 2011

Я пытаюсь выяснить, когда и как Windows обновляет время доступа к файлам для файлов. Прежде всего, большинство установок Windows поставляются с отключенным временем доступа к файлу по соображениям производительности, поэтому перед тем, как обдумать это, вам нужно сделать, чтобы активировать время последнего доступа в файловых системах NTFS: измените значение ключа [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem] имя NtfsDisableLastAccessUpdate в DWORD 0 значение данных (если оно установлено в 1, конечно). Если его не существует, просто создайте его.

После прочтения статьи File Times на MSDN я все еще сомневаюсь в том, как Windows обновляет время доступа.

Мои вопросы следующие:

  • Обновляется ли время доступа при выдаче WinApi CreateFile() с FILE_READ_ATTRIBUTES? В моем случае, делая это программно, это не так. Открытие диалогового окна «Свойства файла» этого файла через оболочку обозревателя обновляет время доступа.
  • Обновляется ли время доступа при выдаче WinApi ExtractIconEx() для чтения значка из файла? В моем случае это делается программно, это не так. Открытие диалогового окна «Свойства файла» этого файла через оболочку обозревателя обновляет время доступа.

Если вы спросите меня, оба эти случая должны обновить время доступа к файлу, но мне кажется, что прямые вызовы WinApi не обновляют их, или драйвер Window / NTFS действительно отстает, а работа с файлами из Windows Explorer делает Обновление довольно хорошо. Как вы думаете, в чем здесь проблема?

Как примечание, я сделал до CloseHandle() согласно:

Единственная гарантия на файл отметка времени, что время файла правильно отражается, когда ручка это делает изменение закрыто.

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

Вне темы. Извините, ребята-криминалисты, вам придется доказать время доступа другим способом, или вы можете сделать ваше дело недействительным за считанные секунды. : P

1 Ответ

1 голос
/ 11 февраля 2011

Нет, доступ к метаданным файла не приведет к изменению времени последнего доступа (имя, атрибуты, метки времени). На практике это не сработает, просто просмотр каталога с помощью Explorer изменит его. Вы должны фактически открыть файл. ExtractIconEx () обычно был бы отличным кандидатом, за исключением того, что Windows может поиграть с ним. Скрытый файл desktop.ini может перенаправить значок в другой файл.

Использование последнего времени доступа довольно бесполезно для криминалистов. Вам нужен драйвер фильтра файловой системы. Подобно тому, что встроено в утилиту SysInternals ProcMon. Это может быть использование ETW, кстати, это стало довольно мощным во время Vista. Тем не менее, ваш проект стал в 10 раз сложнее.

...