Дата последнего доступа к файлу

FileInfo fileInfo = new FileInfo(file);       
System.Diagnostics.Debug.WriteLine(fileInfo.LastAccessTime.ToString("dd.MM.yyyy HH:mm:ss"));

Выдаёт неправильную дату. На локальных дисках дата всегда равна LastWriteTime. А на сетевом диске (через RadminVPN) выдает правильно :thinking:
В винде, вроде, можно отключать обновление даты последнего доступа к файлам на NTFS. Но я уже лет 8 таким не занимаюсь :man_shrugging:

проверил на ноутбуке - работает :man_shrugging: :thinking:

А если антивирус сканировал файл это считается доступом?

неа :man_shrugging:

по умолчанию выключено же в винде. затратно. если в консоли на fsutil behavior query disablelastaccess вернет DisableLastAccess = 1 то фиг - не регистрируется. нужно включить )


PS C:\Users\RAIN> fsutil behavior query disablelastaccess
DisableLastAccess = 3  (Управляет система, включено)
PS C:\Users\RAIN>

0 - User Managed, Last Access Updates Enabled
1 - User Managed, Last Access Updates Disabled
2 - System Managed, Last Access Updates Enabled
3 - System Managed, Last Access Updates Disabled

Disabled - отключено

Опция же называется ОтключитьПоследнийДоступ.
Так что “включено” значит “включено отключение” )

в чём разница?

Я же не менял ничего :man_shrugging: По-умолчанию, вроде, “выключено” должно быть :thinking:
Помню, лет 17 назад все отключать эту хрень пытались. А тут она и так не работает :man_shrugging:

У меня в реестре вообще стоит NtfsDisableLastAccessUpdate = 80000003 (hex) :dizzy_face: Это как так? :thinking:

80000003 это 10000…00000011 в двоичной.
Говорят, что этот бит тут ставится, чтобы отличать новый набор значений от старого (0 или 1).

System Managed — система решила, и может менять сама если стоит одно из этих.

Я поставил просто 0 и сразу заработало (даже без перезагрузки).
Получается, что при каждом обращении к каждому файлу, каждый раз, винда снова и снова лезет в реестр за значением этого параметра? :dizzy_face:

Может оно оповещения получает, типа этого

Да как-то сомнительно.