0

当使用 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');
}
4

0 回答 0