我扩展了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
之外。
我确信这可以做得更好,但我不确定。任何帮助,将不胜感激。感谢
答案 0 :(得分:1)
您实际使用sender
方法中的EventArgs
和EventFolderCount
吗?您可以为发件人和空Me
对象传递EventArgs
。
然而What are the event arguments “sender” and “e”建议尝试举起活动不是首选。相反,你应该有一个方法来完成任务,并在两个地方都有调用。
答案 1 :(得分:0)
我实际上通过将我的EventHandler更改为仅需要String
变量而不是EventArgs
来解决此问题:
Public Event EventFolderCount(filename As String)
通过这种方式,我可以轻松地在FileSystemWatcher
内外调用它:
RaiseEvent EventFolderCount(filename)
感谢@Dave Anderson指出我正确的方向。