FileSystemWatcher Delete和Shift+Delete事件不同

本文关键字:事件 Shift+Delete Delete FileSystemWatcher | 更新日期: 2023-09-27 18:27:20

FileSystemWatcher C#

文件夹结构C:''A''B''C''D''E''F''abc.txt

删除嵌套文件夹B只触发根文件夹B 的一个事件

但是Shift+Delete会触发所有子文件夹和文件的事件。

我需要获得与Shift+Delete 相同的Delete嵌套文件夹事件

下面的问题与我的要求类似,但不起作用

C#FileSystemWatcher.Deleted not Fireing on";正常的";删除?

FileSystemWatcher Delete和Shift+Delete事件不同

下面的问题与我的要求类似,但不起作用

定义"不工作"。正如您提到的问题的已接受答案中所提到的,Windows中的默认行为是,当您按下delete键时,文件实际上并没有被删除-它被移动到一个名为回收站的特殊文件夹中。

如果您处理重命名和更改的事件,您应该会看到移动到回收站的证据,但正如您所发现的,这些事件可能只会针对父文件夹引发(另请参阅使用FileSystemWatcher检测移动的文件)。可能无法获取子文件夹/文件的事件。如果您需要跟踪子项,则需要在删除它们之前将它们索引到某个数据结构中。

此外,请记住,有些人(像我一样)完全禁用了回收站,对我们来说,删除就是删除。