我有两个程序可以读写同一个文件。一个附加数据,另一个清除文件,然后重写所有数据。
这两个程序在同一台计算机上很好地交互,但是当我在另一台计算机上运行并通过我的本地网络打开文件时,我的附件似乎没有及时通过。
我的程序如下:
方案1:
方案2:
如果文件被另一个程序锁定,则程序1提示用户重新尝试保存。如果文件被另一个程序锁定,则程序2会重试几次。
看起来,当通过网络访问文件时,程序1中的附加操作在清除和重写数据之前不会被程序2捕获。我试着用FILE_FLAG_WRITE_THROUGH标志打开程序1中的文件,并在关闭文件之前使用FlushFileBuffers(句柄)。
在这个过程中我遗漏了什么吗?
如果这有帮助的话,我正在Embarcadero C++ Studio中编码。
耽误您时间,实在对不起。
发布于 2013-01-29 10:41:28
众所周知,对于网络共享的文件访问,文件锁定不可靠和可靠。简单地说,您需要找到另一个实现互斥的机制。例如,使用客户机/服务器数据库设计。
https://stackoverflow.com/questions/14575812
复制相似问题