gpt4 book ai didi

c++ - 是否可以重命名已在使用的 xls 文件?

转载 作者:太空宇宙 更新时间:2023-11-04 11:50:30 25 4
gpt4 key购买 nike

我是这个论坛的新手。我正在编写一个程序来将文件从一台机器同步到另一台机器。虽然它工作正常,但我在使用 excel 文件(.xls、.xlsx)时遇到了一些问题。假设我已经从客户端 C1 备份了一个 xls 文件并将其更新到其他客户端,比如 C2。这通过 librsync 算法逐步发生。

现在的场景是:

我在 C1 和 C2 中都有一个文件 a.xls,该文件正在从 C1 进行修改,需要更新到 C2。在此期间,如果文件(与以前的版本)已经在 C2 中打开,我将无法以相同的名称更新它。通常在对 C2 进行此类更新时,我们习惯于写入一个临时文件 (a.xls.tmp),完成后,a.xls.tmp 将重命名为 a.xls。此重命名选项失败,因为 a.xls 已在 C2 中打开。

但这不是唯一的例子。有时,防病毒软件或其他备份产品可能会锁定 excel 文件,并且此重命名操作再次失败。由于这些因素,我不完全知道该文件是否在目标机器(此处为 C2)中使用。

如果您能提供一些如何以编程方式处理此类情况的建议,我将不胜感激。我在我的案例中使用 C++。

谢谢,文卡特

最佳答案

在 Windows 中,无法重命名(或删除)当前打开的文件。据我所知,没有办法解决这个问题。唯一的方法是等到其他进程关闭文件。如果它是打开文件的东西,那当然可能需要一段时间。

关于c++ - 是否可以重命名已在使用的 xls 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18539716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com