2012-03-09 64 views
-3

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

文件夹结构C:\ A \ B \ C \ d。\ E \˚F\的abc.txt

删除嵌套文件夹B类火灾只有一个事件根文件夹B

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

我需要删除同一嵌套的文件夹事件Shift + Delete键

下面的问题是类似我的要求,但它不工作

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

+0

为什么监控重命名不起作用?怎么了? – CodesInChaos 2012-03-09 17:06:09

+0

没有它不工作,如果我删除 – Ullan 2012-03-09 17:08:08

+0

@ HPFE455 - [你已经被告知](http://stackoverflow.com/questions/9628011/how-to-get-the-deleted-file-folders-using-filesystemwatcher/9628059#comment12219986_9628059)没有一个事件适用于这两种情况。为什么再问这个问题? – 2012-03-09 17:10:31

回答

2

下面的问题是相似的我的要求,但它不起作用

定义“不工作”。作为在你引用的问题,接受的答案中提到,在Windows中默认行为是,当你按下删除键,文件实际上不是deleted-是移动到名为回收站的特殊文件夹。

如果处理renamedchanged事件,你应该看到移动到回收站的证据,但如你发现的事件很可能会只对上级文件夹上调(见Detecting moved files using FileSystemWatcher)。可能无法获取子文件夹/文件的事件。如果你需要跟踪孩子,你需要在他们被删除之前将他们索引到一些数据结构中。

另外,请记住,有些人(如我)完全禁用回收站,而对于我们来说,删除就是删除。

+0

我认为这是我可以解决问题的方式。保留监视目录中的文件列表,同时删除,使用列表值和删除的文件夹路径,并根据我的要求进行操作。 – Ullan 2012-03-09 17:19:31

+0

这听起来正确。注意我提到的其他事情,其中​​回收站完全禁用。 – 2012-03-09 17:21:01

+1

@ HPFE455 - 你的意思是15小时前什么是[建议给你](http://stackoverflow.com/a/9628059/635634)? – 2012-03-09 17:21:18