C# 是否有文件的ICopyHook.CopyCallback或替代文件?
我们使用ICopyHook.CopyCallback shell扩展来检测文件夹(而不是文件)的删除、移动和创建,如何检测用户是否正在从C#应用程序中删除文件,或者如何为用户处理删除操作? 示例:用户在f1.txt上按Shift+DEL,然后操作系统会询问“您确定要删除'f1.txt'吗?”如果用户按'yes',则C#应用程序将通过将'f1.txt'以透明方式移动到某个隐藏文件夹{例如}来处理删除操作C# 是否有文件的ICopyHook.CopyCallback或替代文件?,c#,windows,file-io,filesystemwatcher,shell-extensions,C#,Windows,File Io,Filesystemwatcher,Shell Extensions,我们使用ICopyHook.CopyCallback shell扩展来检测文件夹(而不是文件)的删除、移动和创建,如何检测用户是否正在从C#应用程序中删除文件,或者如何为用户处理删除操作? 示例:用户在f1.txt上按Shift+DEL,然后操作系统会询问“您确定要删除'f1.txt'吗?”如果用户按'yes',则C#应用程序将通过将'f1.txt'以透明方式移动到某个隐藏文件夹{例如}来处理删除操作 注意:我认为FileSystemWatcher无法完成此任务。您需要一个文件系统筛选器驱动程序
注意:我认为FileSystemWatcher无法完成此任务。您需要一个文件系统筛选器驱动程序,它将拦截文件删除或文件移动请求(文件被移动到回收站),并相应地执行操作
请注意,由于没有在文件系统级别复制文件这样的操作(ICopyHook只能捕获资源管理器本身或通过shell API函数执行的操作),因此无法使用文件系统筛选器驱动程序(或通过任何其他方式)跟踪“复制”.我很确定有一种变体也适用于文件。我安装了Windk,我尝试了一些示例,当用户删除文件时调用了什么过程/事件???@houssam1130如果您要编写自己的内核模式驱动程序,但不了解内核模式的基本知识,则需要大约6个月(至少)才能完成这项工作。