Во время моего опыта я пошла бросить пару вопросов, как у вас.В системах Windows Vista / 7, которые работают , не всегда возвращает надежный результат.
Через некоторое время мы нашли эту ссылку: Отключение времени последнего доступа в Windows Vista для повышения производительности NTFS
Наблюдательный пользователь Windows Vista заметил реестр с именем NtfsDisableLastAccessUpdate
под HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ControlFileSystem
и спросил нас, что это значит.
Время последнего доступа - это атрибут файла, который обновляется при доступе к файлу или иным образом.(Это часто путают с Last Modified Time , который обновляется только при изменении файла.) Время последнего доступа имеет слабую гранулярность, которая гарантирует, что время точно с точностью до одного часа.
В Windows Vista мы отключили обновления времени последнего доступа для повышения производительности NTFS.Если вы используете приложение, использующее это значение, вы можете включить его с помощью следующей команды:
fsutil behavior set disablelastaccess 0
Необходимо перезагрузить компьютер, чтобы изменения вступили в силу.Для получения дополнительной информации о команде Fsutil и времени последнего доступа см. Интерактивную справку Fsutil .
На основании этого выяснилось, что время последнего доступа не может использоваться в качестве "сильного ключа".Чтобы решить эту проблему, мы просто прекращаем ретрансляцию при вызове GetLastWriteTime
, но сохраняем последнее измененное значение файла или его имя, например "FileName_yyyymmdd"
, или внутри этого файла в каком-то поле.
Существует другое решение для GetLastAccessTime
, которое можно найти здесь:
.NET FileInfo.LastWriteTime & FileInfo.LastAccessTime неверны , может быть полезно и в вашем случае.
Мое общее мнение по этому поводу будет таким: не передавайте этот параметр, а придумывайте что-то еще в своей архитектуре.
Удачи