我发现了很多有关移动的文件(我没有问题)的讨论,但是没有关于移动的文件夹的任何讨论(因此,这篇文章)。
我有一个FileSystemWatcher
实例化如下:
var fileWatcher = new FileSystemWatcher("C:\\mypath");
fileWatcher.IncludeSubdirectories = true;
fileWatcher.NotifyFilter = NotifyFilters.LastWrite
| NotifyFilters.FileName
| NotifyFilters.CreationTime
| NotifyFilters.Size;
fileWatcher.Changed += OnChanged;
fileWatcher.Created += OnChanged;
fileWatcher.Deleted += OnDeleted;
fileWatcher.Renamed += OnRenamed;
fileWatcher.Error += WatcherOnError;
fileWatcher.EnableRaisingEvents = true;
无论我对文件做什么,都可以按预期方式引发事件,但是,如果我将拖动(移动)在文件夹中(即使其中有文件)到监视的文件夹,则根本不会引发任何事件。
我在Windows 10上运行(不确定win的其他版本是否以相同的方式运行)。
有谁知道如何获取文件夹移动的通知?
最佳答案
您通过在NotifyFilters.DirectoryName
中不包括NotifyFilter
来明确排除目录更改。
这是文档的link,但这仅是暗含的正确的:-)我只是通过不带代码,然后带extra标志的方式来确认这一点。