2012-03-09 29 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