监视文件/目录访问在C#

我想开发logging在机器上访问的文件/目录的应用程序。

例如我去D:\,并进入一个文件夹的文件,并打开一个文件。 我希望我的应用程序使用以下格式创build日志:

  1. D:\打开
  2. D:\文件打开
  3. D:\ documents \ secret.docx打开

我已经使用FileSystemWatcher来实现其他types的文件系统活动,但无法获取访问此事件的事件。

听起来像你想做一个FileMon程序像系统内部。 在他们的网站Mark讲述了FileMon的工作方式,以便通过阅读文章来获得灵感。

也看到这里: 你如何通过用户名监视文件服务器上的文件访问和更改?

不确定这种监控可以通过filesystemwatcher实现,因为它旨在监控我认为的变化。 您可以使用文件系统审计(通过进入高级安全设置),这将记录事件日志中的事件,你可以从那里拉。

最可行的选择是使用文件系统过滤器驱动程序。 这样的驱动程序可以让您精确控制所有到特定文件系统的请求。 这种方法唯一的问题是在内核模式下开发这种驱动程序的复杂性。