FileSystemWatcher删除和Shift + Delete事件是不同的

时间:2012-03-09 17:03:36

标签: c#

FileSystemWatcher C#

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

删除嵌套文件夹B仅为根文件夹B

触发一个事件

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

我需要删除与Shift + Delete

相同的嵌套文件夹事件

以下问题类似于我的要求,但它不起作用

C# FileSystemWatcher.Deleted not Firing on "normal" deleting?

1 个答案:

答案 0 :(得分:2)

  

以下问题类似于我的要求,但它不起作用

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

如果您处理renamedchanged事件,您应该看到移动到回收站的证据,但是当您发现事件可能仅针对父文件夹时引发(另请参阅Detecting moved files using FileSystemWatcher)。可能无法获取子文件夹/文件的事件。如果您需要跟踪子项,则需要在删除它们之前将它们编入索引。

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