我发现了很多有关移动的文件(我没有问题)的讨论,但是没有关于移动的文件夹的任何讨论(因此,这篇文章)。

我有一个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标志的方式来确认这一点。

10-07 14:19