0

FileSystemWatcher クラスを拡張して、フォルダーが指定された量のファイルに達した場合、またはフォルダーが空の状態に戻った場合にイベントを発生させる FolderCount モニターと FolderEmpty モニターを組み込みました。私はこれが機能しているようで、これらの条件が発生したときにイベントが発生しています。

ただし、私の問題は、FileSystemWatcher が最初に初期化されるときに、指定されたフォルダーのフォルダーの内容を自動的にチェックしてファイル数を取得することです。既に制限に達している場合は、FileSystemWatcher が報告するのを待つのではなく、すぐにイベントを発生させる必要があります。

.Created現在、 and呼び出しにプラグインすることによってのみイベントを発生させることができるようですが.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

私の問題は、 と の両方senderemy の外にあるため、何も入力されないことWatcherEventArgsです。

これはもっと良い方法でできると確信していますが、確信が持てません。どんな助けでも大歓迎です。ありがとう

4

2 に答える 2

0

私は実際に EventHandler をString変数のみを必要とするように変更することでこれを解決しましたEventArgs:

Public Event EventFolderCount(filename As String)

FileSystemWatcherこのようにして、次のように簡単に内外で呼び出すことができます。

RaiseEvent EventFolderCount(filename)

正しい方向に向けてくれた@Dave Andersonに感謝します。

于 2015-08-03T06:47:32.167 に答える