Я расширил класс FileSystemWatcher, включив в него мониторы FolderCount и FolderEmpty, которые генерируют события, если папка достигает заданного количества файлов или если папка возвращается в пустое состояние. Кажется, у меня это работает, и я получаю события, возникающие при возникновении этих условий.
Однако моя проблема заключается в том, что когда мой FileSystemWatcher впервые инициализируется, он автоматически проверяет содержимое папки в указанной папке, чтобы получить количество файлов. Если предел уже достигнут, мне нужно немедленно вызвать событие, а не ждать, пока FileSystemWatcher сообщит об этом.
В настоящее время я могу вызывать события только путем подключения к вызовам .Created
и .Deleted
, однако, поскольку никакие файлы не создаются и не удаляются, я не знаю, как вызвать событие вручную.
Public Sub Initialize()
SetFolderCountStatus() 'Set the isFolderEmpty flag based on file contents
If Not isFolderEmpty Then
If options.WatchForFolderCount Then
If FileCountReached(options.FileCountToWatch) Then
RaiseEvent EventFolderCount(sender, e) 'Sender and e are never defined
End If
End If
End If
End Sub
Моя проблема в том, что и sender
, и e
никогда ничем не заполняются, потому что они находятся за пределами моего WatcherEventArgs
.
Я уверен, что это можно сделать лучше, но я не уверен. Любая помощь будет оценена по достоинству. Спасибо
RaiseEvent EventFolderCount(Nothing, New WatcherEventArgs(...) )
будет работать, но было бы лучше просто вызвать метод, который выполняет необходимую вам работу, которая также вызывается реальными событиями. - person Ňɏssa Pøngjǣrdenlarp   schedule 30.07.2015