The last access date is not changed even after reading the file on Windows 7

Solution 1:

The NtfsDisableLastAccessUpdate registry setting is enabled by default in Windows 7. This was a performance tweak that many people used in earlier OSes because it prevents a lot of excessive writes to the hard drive.

If you actually want the Last Access date updated the way it used to be, simply set the registry value to 0.

For future reference in case the doc link stops working, the key is located in:

HKLM\SYSTEM\CurrentControlSet\Control\FileSystem

It's a REG_DWORD value called NtfsDisableLastAccessUpdate that can be set to 0 or 1.

From the link:

Determines whether NTFS updates the last-access timestamp on each directory when it lists the directories on an NTFS volume.

This entry is designed to prevent the NTFS log buffer in physical memory from becoming filled with timestamp update records. If you have an NTFS volume with a very large number of directories (in excess of 70,000), and Windows 2000 does not respond quickly to dir commands, adding this entry to the registry might make directories list faster.

0 - When listing directories, NTFS updates the last-access timestamp on each directory it detects, and it records each time change in the NTFS log.

1 - When listing directories, NTFS does not update the last-access timestamp, and it does not record time stamp updates in the NTFS log.

Solution 2:

Using this command to enable/disable LastAccessTime :

Open an elevated command prompt. Right click Windows Start button and select Command Prompt (Admin). To check the Last access time updates are enabled or not, run:

C:\> fsutil behavior query disablelastaccess DisableLastAccess = 1

To enable Last access time update:

C:\> fsutil behavior set disablelastaccess 0 DisableLastAccess = 0

To disbale Last access time update:

C:\> fsutil behavior set disablelastaccess 1 DisableLastAccess = 1 After making any change you must restart the computer for the changes to take place.