当前位置: 首页 > 编程语言 > C#

是否可以使用.NET来跟踪文件操作?分享

时间:2023-04-11 02:46:26 C#

是否可以使用.NET跟踪文件操作?是否可以在操作系统请求继续之前以我可以处理的方式调用文件操作(如打开或关闭),并在可能的情况下通过.NET取消它?如果.NET没有这样的能力,我该怎么做?你必须做的可以做。例如,病毒扫描程序一直这样做。您可以使用ProcessMonitor轻松监控文件活动。您还可以使用FileSystemWatcher类在C#中以编程方式执行此操作。然而,试图阻止程序打开或试图阻止程序访问文件不能在C#中完成。您将需要使用C或C++。您需要创建一个文件系统过滤驱动程序。构建起来很复杂,但这正是您所需要的。引用MSDN:文件系统筛选器驱动程序拦截针对文件系统或另一个文件系统筛选器驱动程序的请求。通过在请求到达预期目标之前拦截请求,过滤器驱动程序可以扩展或替换请求的原始目标提供的功能。文件系统过滤器驱动程序的示例包括防病毒过滤器、备份代理和加密产品。如果需要,可以挂接WindowsAPI。看看这个在.NET/C#中的实现方式:EasyHookWindowsAPISysinternals提供了一个免费的工具ProcessMonitor,其中一个功能是附加到任意Windows进程(包括.NET应用程序)并捕获系统调用,包括文件打开,closing,reading等。你可以在ProcessMonitor下载页面下载。编辑当我重新阅读你的问题时,我看到你在询问拦截并可能取消此类操作。我相信FileSystemWatcher类是最好的选择,尽管我认为它不能单方面取消文件操作——您需要构建某种协调机制来通知调用者中止其操作。我很确定您必须在这种操作中进入内核,我很确定这意味着您需要用C编写代码。请参阅文件系统驱动程序。更新:这个SO链接可能有帮助。更新:添加了对Windows文件系统驱动程序的谷歌搜索还可以使用哪些资源开始Windows文件系统驱动程序开发?以上是C#学习教程:是否可以用.NET来跟踪文件操作?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: