我是这个论坛的新手。我正在编写一个程序来将文件从一台机器同步到另一台机器。虽然它工作正常,但我在使用 excel 文件(.xls、.xlsx)时遇到了一些问题。假设我已经从客户端 C1 备份了一个 xls 文件,并将其更新到其他客户端,比如 C2。这通过 librsync 算法逐渐发生。
现在的场景是:
我a.xls
在 C1 和 C2 中都有一个文件,这个文件是从 C1 修改的,需要更新到 C2。在此期间,如果文件(与以前的版本)已经在 C2 中打开,我无法以相同的名称更新它。通常在对 C2 进行此类更新时,我们通常会写入一个临时文件 ( a.xls.tmp
),完成此操作后,a.xls.tmp
将重命名为 a.xls。此重命名选项失败为a.xl
s 已在 C2 中打开。
但这不是唯一的情况。有时防病毒或其他备份产品可能会锁定 excel 文件,并且此重命名操作再次失败。由于这些因素,我不完全知道该文件是否在目标机器(此处为 C2)中使用。
如果您能就如何以编程方式处理此类情况提出一些建议,我将不胜感激。我正在为我的案例使用 C++。
谢谢,文卡特