0

NAS (共有としてマウント) 上のファイルの変更 (作成/削除/名前変更など) を監視するための適切で安定した方法を探しています。

.NET が提供するFileSystemWatcher -Objectがあることは知っていますが、リモート ストレージ デバイスでは信頼できないとも聞きました。

リモートデバイスをポーリングして、それらのファイルが変更されているかどうかを確認することを考えています(以前に収集されたファイルプロパティとの差分)。

編集:具体的な要件:

  • NAS上にあるディレクトリのファイル/フォルダの変更を監視します(パスとおそらく何らかのフィルタが与えられます)
  • 変更をログに記録します。ファイル レベルで「file-x の名前が変更/作成/削除されました」と言うのが最善ですが、「folder-x で何かが変更された」と言ってフォルダー レベルでも可能です。
  • 外部実行可能ファイルを実行する機能
  • WinServer で Windows サービスとして実行 (特定の .NET バージョンは不要)

これを解決するための一般的な手法やベストプラクティスはありますか?

編集:ファイルを一意に識別する方法は?

ファイルは名前で識別できません (変更される可能性があるため)。

しかし、Onkelborg が提案したように、最後に変更/作成されたタイムスタンプ (64 ビット整数のミリ秒) でファイルを一意に識別することは可能ですか? それとも他にアイデアはありますか?

4

1 に答える 1

1

ディレクトリとファイルの数を非常に少なくしたい - 関心のあるすべてのディレクトリをトラバースし、すべてのファイルのある種の「タグ」を取得する必要があります。比較対象とするために、「タグ」を含むすべてのファイルのリストを保持する必要があります。「タグ」は、「最終更新日」またはファイル長、またはその両方のいずれかです。(「最終更新日」をお勧めします。ファイルの長さはお勧めしません。)

もっと具体的に言うべきだと思いますが、あなたの要件は何ですか? なにか特別なもの?そうでない場合、私が書いたものはあなたが必要とするものです: ツリーを再帰的に構築し、待って、再度構築し、比較し、繰り返します。

于 2012-09-01T21:43:04.123 に答える