2012-02-25 8 views
0

私はFileSystemWatcherで多くのディレクトリを監視し、何か変更があった場合に検索エンジンに通知するアプリケーションを構築しようとしています。各ディレクトリに対して新しいFileSystemWatcherを作成する必要がありますか?私はspesificデザインパターンを適用する必要がありますか?私は解決策の提供にいくつかの助けが必要です。FileSystemWatcherとデザインパターン

ありがとうございます! FileSystemWatcherオブジェクトの数を最小限にするために

答えて

2

、あなたはFileSystemWatcherクラスのプロパティを活用することができます

  • IncludeSubdirectories - あなたはディレクトリ内のすべての単一のサブディレクトリを監視する場合trueに設定します。そのため、各子専用のウォッチャーを作成するのではなく、親ディレクトリ用のウォッチャーを1つだけ使用します。
  • NotifyFilter - あなただけ*.txtファイル(または何か他のものへの変更を検出したい場合は、多くのオプションが)あります、見てのファイル(例えばの範囲を制限するためにこれを使用
  • InternalBuffer - 。あなたはこのプロパティを調整することができます冗長性とメモリの消費量との間のバランスを見つける。

を監視するフォルダの特定の限定されたリストがあれば、その後、私はそれが彼らのそれぞれに別々のウォッチャーを使用するようにOKだと思う。 どのように多くのフォルダあなたは、一般的に期待しています監視されるか?

+0

こんにちは!私は別の場所(サブディレクトリだけでなく)にあるたくさんの異なるディレクトリのためにたくさんのファイルを索引付けすることを計画しています。 このアプリは検索エンジン用で、各ディレクトリの新しいファイルシステムウォッチャーを作成する予定です。どのようにグループ分けしてイベントを見ているのか? –

+0

数年前、私は同様のアプリを開発しました。 DBに格納された異なる 'トレースプロファイル'(監視フォルダのコレクション)を持ち、サーバはDBからそのプロファイルを読み込み、そのプロファイル内の各フォルダの 'FileSystemWatcher'オブジェクトを作成します。私は現在ソースコードを持っていませんが、(サーバーの起動時に)1つの方法ですべてのウォッチャーを作成し、各ウォッチャーに対して同じイベントハンドラーを使用したことを覚えています。だから私は何百ものウォッチャーを持っていましたが、4つのハンドラーメソッド(Created、Renamed、Changed、Deleted)しかなく、具体的なウォッチャーは 'sender'引数から決定できました。 –

+0

クール、それは私の話しているものです。どこでファイルシステムウォッチャーを置いたのですか?クラスで?リストに? –

0

Fr私が使用しようとしたときに覚えているものFileSystemWatcher少なくとも私のために役立つ方法でフィルタリングできることに欠けています。私は、私が見たいと思っていたファイルの拡張子ごとにFileSystemWatcherを作成しなければならなくなったと思います。また、あなたが見ている変化に応じて、FileSystemWatcherは多くのイベントを投げますが、いくつかは2倍のようです。しかし、あなたが作成したばかりのものを探しているなら、それが問題になるとは思わない。

私は、RX拡張機能が私が必要とするものをフィルタリングするのに非常にうまく機能していることがわかりました。このページには例があります。 http://www.developerit.com/2010/04/20/reactive-extensions-vs-FileSystemWatcher

おそらく、あなたが見たい変更やファイルのタイプごとにFileSystemWatcherを作成しています。それがすべての場合は、おそらく1つ十分でしょう。