我需要在系统尝试访问文件时进行拦截,并在它发生之前做一些事情。
问问题
3380 次
5 回答
8
您可以使用FileSystemWatcher
- 但这不会让您拦截事件并事先做事 - 它只会在特定文件或目录以某种方式受到影响之后通知您。
拦截文件访问不是一件容易的事。
您可以编写一个文件系统过滤器驱动程序,它是一个非托管 DLL,操作系统将加载它,它可以拦截对文件或文件夹的操作。然而,这不是一项微不足道的任务。
你想达到什么目标,也许有一个更简单的选择?
于 2010-02-28T21:54:17.013 回答
2
检查http://easyhook.codeplex.com/,它直接为您提供 c# c++ 之类的 dll 方法覆盖。
于 2010-03-01T16:00:51.080 回答
2
仅使用 .net 是不可能的
于 2010-02-28T22:09:16.617 回答
1
这里有一个非常相似的线程:如何防止使用 Windows 服务创建文件夹?. 它可能会提供更多见解,但@LBushkin 已经提供了相同的结论。
于 2010-02-28T21:56:21.903 回答
0
有趣的问题。什么样的访问?读取、写入、删除、复制?
如果您需要阻止对文件的访问,那么安全性就是最好的方法。然后,您可以捕获访问权限并将任务委托给更高特权的执行引擎。例如以更高特权用户身份运行的服务。
如果你想停止系统级访问,那么你需要一个IFS 过滤器。
如果所有访问都是通过您的代码进行的,那么我建议使用一个阻止访问的库。
正如其他人所提到的,有 FileSystemWatcher,但我认为这个帖子访问之前没有。
于 2010-02-28T21:58:29.923 回答