При использовании 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');
}