当系统尝试访问文件时,我需要拦截,并在它发生之前做一些事情。
当系统尝试访问文件时,我需要拦截,并在它发生之前做一些事情。
您可以使用 FileSystemWatcher
- 但这不会让你拦截事件并事先做好事情 - 它只会在特定文件或目录以某种方式受到影响后通知你。
拦截文件访问权限不是您可以轻松完成的。
你可以写一个 文件系统过滤驱动,这是O / S将加载的非托管DLL 拦截文件或文件夹上的操作。但是,这不是一项微不足道的任务。
你想要实现什么,也许有一个更简单的选择?
仅使用.net是不可能的
这里有一个非常相似的主题: 如何防止使用Windows服务创建文件夹?。它可能会提供更多的见解,但@LBushkin已经提供了相同的结论。
检查 http://easyhook.codeplex.com/,它直接从c#c ++直接为您提供dll方法覆盖。
有趣的问题。什么样的访问?读,写,删除,复制?
如果您需要阻止访问文件,那么安全性就是这样。然后,您可以捕获访问权限并将任务委派给更高权限的执行引擎。例如作为更高特权用户运行的服务。
如果你想停止系统级访问,那么你需要一个 IFS过滤器。
如果所有访问都是通过您的代码进行的,那么我建议一个阻止访问的库。
正如其他人提到的那样,有FileSystemWatcher,但我认为这个帖子访问不是之前。