这个文件是多个程序共享打开并写数据的,我如何能监控文件流中内容有修改,然后去执行我的操作?

解决方案 »

  1.   

    校验该文件流的Hash,这个比较保险,照样使用Indy里面的IDHash,function TIdHash.HashStreamAsHex(AStream: TStream): String;若被修改,返回的hash必然不同。
      

  2.   

    奇怪的是文件的修改时间是不变的,但里面的数据确实有变动。IDHash不能用,如果文件太大的话会消耗额外的资源,因为这个文件记录很多,而且是几秒更新一次数据,我不能每秒都去判断Hex值吧。不知有没有消息类的可用?
      

  3.   

    你要确保流没改过 除了校验Hash,我想不到还有什么准确的。
      

  4.   

    如果能控制或约定所有写文件的程序的话,就让它们在改写文件后设置标记(自行约定)。如果不能,就只能做HASH校验。