Я пытаюсь посмотреть сетевой ресурс для папок, в которые файл добавлен в общий ресурс, чтобы показать, что загрузка завершена. Я хотел использовать FileSystemWatcher для мониторинга этого общего ресурса и его подкаталогов для этого файла триггера, как показано ниже.FileSystemWatcher IncludeSubdirectories не работает на сетевом ресурсе
FileSystemWatcher fsw = new FileSystemWatcher(share, triggerFilePattern);
fsw.IncludeSubdirectories = true;
fsw.Created += new FileSystemEventHandler(OnCreated);
fsw.Renamed += new RenamedEventHandler(OnRenamed);
fsw.Error += new ErrorEventHandler(OnError);
Если файл создан в корневой папке общего доступа, триггеры события. Если файл создается в подкаталоге общего ресурса, событие делает не триггером, и я также не получаю сообщение об ошибке.
Если я создаю новый FileSystemWatcher для этого подкаталога, тогда я получаю событие, когда там создается файл. Но, подобно файловому файлу верхнего уровня FileSystemWatcher, я не буду получать события для файлов, созданных в любых дополнительных подкаталогах.
Если я изменяю сетевой ресурс в локальном каталоге для тестирования, он работает должным образом.
Любые идеи? Могу ли я настроить несколько сетевых параметров сети, которые блокируют рекурсивные проверки FileSystemWatcher? Я могу обойти это, но было бы неплохо не усложнять код.
Редактировать: Я видел, что у меня не было полного доступа в разделе «Свойства-> Безопасность», поэтому я подумал, что это возможно. Но я смог получить нормальное желаемое поведение на другой доле с одинаковыми видимыми разрешениями, поэтому я вернулся к тому, чтобы не знать, почему эта конкретная доля не работает.
Редактировать 2: По предложению коллеги я добавил обработчик с изменением. Не имеет смысла для меня, как файл может быть изменен без создания Создано первым, но ... Я получаю Измененные события в рассматриваемом ресурсе при создании файлов в подкаталоге. (И я все еще ничего не получаю при переименовании.) Это решает мою непосредственную проблему, но я собираюсь оставить вопрос открытым, если кто-то сможет ответить , почему это происходит.
Являются ли разрешения безопасности подкаталогами такими же, как разрешения безопасности корневого каталога? –
Видимые разрешения на вкладке Свойства-> Безопасность одинаковы. –
Вы пробовали установку fsw.EnableRaisingEvents = true; ? – MarkusE