当使用 FileSystemWatcher 并设置watcher.IncludeSubdirectories = true
.
我只能捕获对子目录下两层的更改(例如Dir/SubDir1/SubDir2
)。但是,如果我想要该目录之外的东西(例如Dir/SubDir1/SubDir2/.../...
),则不会引发任何事件。
我把InternalBufferSize = 65536
. 有没有办法能够进入更深的嵌套子文件夹?
这将在网络驱动器文件夹上运行和测试:
using (FileSystemWatcher _watcher = new FileSystemWatcher())
{
_watcher.Path = directory;
_watcher.IncludeSubdirectories = true;
_watcher.NotifyFilter = NotifyFilters.LastWrite
| NotifyFilters.FileName
| NotifyFilters.DirectoryName;
_watcher.Changed += new FileSystemEventHandler(Program._watcher_Changed);
_watcher.Created += new FileSystemEventHandler(Program._watcher_Changed);
_watcher.Deleted += new FileSystemEventHandler(Program._watcher_Changed);
_watcher.Renamed += new RenamedEventHandler(Program._watcher_Renamed);
_watcher.Filter = "*.*";
_watcher.InternalBufferSize = 65536;
_watcher.EnableRaisingEvents = true;
Console.WriteLine("Press 'q' to quit the sample.");
while (Console.Read() != 'q');
}