I\'m using FileSystemWatcher to check when a file is modified or deleted, but I\'m wondering if there is any way to check when a file is read by another application.
Yes, using file system filter driver you can catch all read requests, analyze them and even substitute the data being read. Development of such driver yourself is possible, but very time-consuming and complicated. We offer a product called CallbackFilter, which includes a ready to use driver and lets you implement your filtering business logic in user-mode.