コンテキスト:オペレーターのチームは、サードパーティのアプリケーションで最大10GBのサイズの大きなバッチファイルを処理します。各ファイルには数千の画像が含まれており、50の画像ごとに処理した後、保存ボタンを押します。作業場所の電源は信頼できず、保存中に電源が切れると、ファイル全体が破損します。これを克服するために、FileSystemWatcherを使用して保存を検出し、バックアップを作成して、バッチ全体を再処理することなく復元できるようにする小さなユーティリティを作成しています。
問題:FileSystemWatcherはイベントのレポートを非常にうまく処理しますが、特定できない問題があります。監視対象のファイルはサイズが大きいため、保存プロセスには数秒かかります。保存操作が完了したら通知を受け取りたいです。ファイルバッファがディスクにフラッシュされるたびに、不要なイベントがトリガーされるのではないかと思います。保存が進行中であるかどうかに関係なく、ファイルは書き込み用にロックされたままなので、その方法はわかりません。
保存操作中にファイルのバックアップを作成すると、バックアップされたファイルが破損するため、目的が果たせなくなります。
質問:
- 保存操作の完了後にFileSystemWatcherを使用して通知を受け取る方法はありますか?
- そうでない場合、ファイルがまだ書き込まれているかどうかを確認するために、他にどのように確実にチェックできますか?
代替案:代替案も歓迎します。