背景:一组操作员在第三方应用程序中处理高达 10GB 的大型批处理文件。每个文件包含数千张图像,每处理 50 张图像后,他们点击保存按钮。工作场所的电源不可靠,如果在保存过程中断电,整个文件就会损坏。为了克服这个问题,我正在编写一个使用 FileSystemWatcher 的小实用程序来检测保存并创建备份,以便无需重新处理整个批次即可恢复它。
问题:FileSystemWatcher 在报告事件方面做得很好,但有一个我无法确定的问题。由于监控的文件很大,保存过程需要几秒钟。我希望在保存操作完成后收到通知。我怀疑每次将文件缓冲区刷新到磁盘时,都会触发不需要的事件。无论保存是否正在进行中,该文件仍处于锁定状态,因此我无法判断。
在保存操作期间创建文件的备份会破坏目的,因为它会损坏备份的文件。
问题:
- 有没有办法在保存操作完成后使用 FileSystemWatcher 来通知?
- 如果没有,我还能如何可靠地检查文件是否仍在被写入?
替代方案:也欢迎任何替代建议。