To have System.IO.FileSystemWatcher LastAccess work, the system must have access logging enabled with the following command.
fsutil behavior set DisableLastAccess 0
After setting this, reboot, and you can successfully use the FileSystemWatcher to monitor LastAccess of files (sorta).
Example Code
FileSystemWatcher lWatcher = new FileSystemWatcher(@"C:\windows\temp", "*.*");
lWatcher.NotifyFilter = NotifyFilters.LastAccess;
lWatcher.EnableRaisingEvents = true;
lWatcher.Changed += new FileSystemEventHandler(HandlerWatcherChanged);
lWatcher.IncludeSubdirectories = true;
}
}
static void HandlerWatcherChanged(object sender, FileSystemEventArgs e)
{
Console.WriteLine("[" + DateTime.Now.ToString() + "] ACCESS " + e.FullPath.ToString());
}