1

C# FileSystemWatcher は Perforce 復帰をキャッチしません。同じファイルが変更された場合は正常に機能します。元に戻すとファイルが変更されるため、問題が発生しますが、FileSystemWatcher には通知されません。

Perforce の復帰をどのように監視しますか?

ありがとうございました。

4

4 に答える 4

3

NotifyFilters をチェックすることに加えて、FileSystemWatcher が持つすべてのイベントにハンドラーをアタッチしていることを確認してください。FileSystemWatcher には、Changed、Created、Deleted、および Renamed のイベントがあります。

Changed イベントにアタッチするだけで、イベントをキャッチしない場合は、Perforce がファイルを削除して再作成しているように思えます。この場合は、Deleted イベントと Changed イベントにハンドラーを追加します。

msdnのNotifyFilters ドキュメントには、すべてのイベントの処理を示すサンプル コードがあります。

于 2008-12-10T07:14:57.330 に答える
1

NotifyFiltersを適切に設定しましたか?FileSystemWatcherヘルプから...

ディレクトリまたはファイルで監視できる変更にはいくつかの種類があります。たとえば、属性、LastWriteの日時、またはファイルやディレクトリのサイズの変更を監視できます。これは、NotifyFilterプロパティをNotifyFilters値の1つに設定することによって行われます。

PERFORCEの復帰は、以前のLastWrite時刻に復帰する場合もあります。これは、より新しいタイムスタンプのみを検索している場合、更新をトリガーしません。

于 2008-12-10T02:59:28.810 に答える
0

私はCodeProjectからサンプルの実行可能ファイルを試しました、それはうまくいくようです、悪いのは私のコードであるに違いありません...

于 2008-12-10T03:04:23.810 に答える
0

Perforceレポートは一時ファイルからコピーを行うのではないかと思うので、実際にはファイルに書き込んでいるのではなく、新しいファイルにコピーして前のファイルを吹き飛ばしています. そのため、ファイルは「書き込み」されていないため、通知を受け取りません。それはあなたを助けません:(

于 2008-12-10T05:10:55.973 に答える