FileSystemWatcher IncludeSubdirectories только может обнаруживать изменения для ограниченного числа уровней подкаталогов - PullRequest
0 голосов
/ 04 мая 2019

При использовании 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');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...