C# FileSystemWatcher は Perforce 復帰をキャッチしません。同じファイルが変更された場合は正常に機能します。元に戻すとファイルが変更されるため、問題が発生しますが、FileSystemWatcher には通知されません。
Perforce の復帰をどのように監視しますか?
ありがとうございました。
C# FileSystemWatcher は Perforce 復帰をキャッチしません。同じファイルが変更された場合は正常に機能します。元に戻すとファイルが変更されるため、問題が発生しますが、FileSystemWatcher には通知されません。
Perforce の復帰をどのように監視しますか?
ありがとうございました。
NotifyFilters をチェックすることに加えて、FileSystemWatcher が持つすべてのイベントにハンドラーをアタッチしていることを確認してください。FileSystemWatcher には、Changed、Created、Deleted、および Renamed のイベントがあります。
Changed イベントにアタッチするだけで、イベントをキャッチしない場合は、Perforce がファイルを削除して再作成しているように思えます。この場合は、Deleted イベントと Changed イベントにハンドラーを追加します。
msdnのNotifyFilters ドキュメントには、すべてのイベントの処理を示すサンプル コードがあります。
NotifyFiltersを適切に設定しましたか?FileSystemWatcherヘルプから...
ディレクトリまたはファイルで監視できる変更にはいくつかの種類があります。たとえば、属性、LastWriteの日時、またはファイルやディレクトリのサイズの変更を監視できます。これは、NotifyFilterプロパティをNotifyFilters値の1つに設定することによって行われます。
PERFORCEの復帰は、以前のLastWrite時刻に復帰する場合もあります。これは、より新しいタイムスタンプのみを検索している場合、更新をトリガーしません。
私はCodeProjectからサンプルの実行可能ファイルを試しました、それはうまくいくようです、悪いのは私のコードであるに違いありません...
Perforceレポートは一時ファイルからコピーを行うのではないかと思うので、実際にはファイルに書き込んでいるのではなく、新しいファイルにコピーして前のファイルを吹き飛ばしています. そのため、ファイルは「書き込み」されていないため、通知を受け取りません。それはあなたを助けません:(