4

我有两个文件:A 和 B。我需要用 A 替换 B,而 B 在另一个程序中打开。

以下方法:

MoveFile将B重命名为C,然后将A重命名为B,然后删除C

工作正常。但是我需要一种原子方式来做到这一点,因为如果重命名失败,数据将处于不一致的状态。

我尝试MoveFileEx使用MOVEFILE_REPLACE_EXISTING标志,但是当文件 B 被另一个程序打开时它不起作用。功能相同ReplaceFile。还有其他想法吗?谢谢

4

0 回答 0