Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有文件的ICopyHook.CopyCallback或替代文件?_C#_Windows_File Io_Filesystemwatcher_Shell Extensions - Fatal编程技术网

C# 是否有文件的ICopyHook.CopyCallback或替代文件?

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无法完成此任务。您需要一个文件系统筛选器驱动程序

我们使用ICopyHook.CopyCallback shell扩展来检测文件夹(而不是文件)的删除、移动和创建,如何检测用户是否正在从C#应用程序中删除文件,或者如何为用户处理删除操作? 示例:用户在f1.txt上按Shift+DEL,然后操作系统会询问“您确定要删除'f1.txt'吗?”如果用户按'yes',则C#应用程序将通过将'f1.txt'以透明方式移动到某个隐藏文件夹{例如}来处理删除操作


注意:我认为FileSystemWatcher无法完成此任务。

您需要一个文件系统筛选器驱动程序,它将拦截文件删除或文件移动请求(文件被移动到回收站),并相应地执行操作


请注意,由于没有在文件系统级别复制文件这样的操作(ICopyHook只能捕获资源管理器本身或通过shell API函数执行的操作),因此无法使用文件系统筛选器驱动程序(或通过任何其他方式)跟踪“复制”.

我很确定有一种变体也适用于文件。我安装了Windk,我尝试了一些示例,当用户删除文件时调用了什么过程/事件???@houssam1130如果您要编写自己的内核模式驱动程序,但不了解内核模式的基本知识,则需要大约6个月(至少)才能完成这项工作。