2008-08-26 18 views
2

ここにシナリオがあります:ファイルシステムの変更を処理するための最善のアーキテクチャ?

私は特定のディレクトリの変更を監視するアプリを書いています。このディレクトリには、「ほとんど」一意のGUIDを持つ数千のファイルが毎分氾濫します。ファイル形式はこれです:GUIDの== xxxxxxxxxxxxxxxxxxxxxxxxxxxxx (内部内容は関係ありませんが、それは単なるテキストデータです)

は私のアプリは1つのテキストボックスを持つフォームになります

GUID.datリアルタイムで追加および削除されているすべてのファイルを表示します。新しいファイルが来るたびに、このファイルでテキストボックスを更新する必要がありますが、このセミユニークなGUIDが本当にユニークであることをまず確認しなければなりません。

ファイルがそのディレクトリから削除された場合は、そのディレクトリが存在することを確認してから削除し、それに応じてテキストボックスを更新します。

問題は、.NETファイルウォッチャーを使用していて、(buffersize + 1)番目のファイルが入ってくるたびに壊れてしまう内部バッファがあるようだということです。私のアプリの内部のリストは、来るすべての単一のファイルを追加するが、後でユニークなGUIDチェックを行うが、サイコロはしない。

答えて

3

私は私の頭の中に持って物事のカップル:

  • GUIDはユニークないであれば、それは同じ名前のファイルを上書きする、またはその検索に基づいてチェックされないでしょういくつかの外部の行動(例えば、アーカイブをチェックする)をしますか? (つまり、これはYAGNIの瞬間ですか?)
  • 私はFileSystemWatcherを使用する前にかなり成功しました。についての考え方を教えてください。あなたの実際にやることはありますか?
  • カスタムリストで作業するときに「サイコロがない」と言うと、何が問題でしたか?そして、FileSystemWatcherを使わずにファイルシステムの変更をどうやって確認しましたか?

まだとして申し訳ありません答えは、単に問題の詳細を知りたいのです:)

2

私はあなたがシェルのイベントのすべての種類の通知を受けることもできSHChangeNotify API呼び出し、見てみましょうお勧めします。ファイルの作成および削除アクティビティを監視するには、SHCNE_CREATEおよびSHCNE_DELETE引数に特に注意する必要があります。

関連する問題