是否可以重命名已在使用的xls文件

Is it possible to rename a xls file already in use?

本文关键字:xls 文件 重命名 是否      更新时间:2023-10-16

我是这个论坛的新手。我正在编写一个程序,将文件从一台机器同步到另一台机器。虽然它运行良好,但我在excel文件(.xls,.xlsx)方面遇到了一些问题。假设我已经从客户端C1备份了一个xls文件,并将其更新到其他客户端,例如C2。这是通过librsync算法增量实现的。

现在的场景是:

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

但这并不是唯一的情况。有时Anti-Virus或其他备份产品可能会锁定excel文件,然后此重命名操作再次失败。由于这些因素,我不知道该文件是否在目标机器中使用(此处为C2)。

如果你能提出一些如何用程序处理此类案件的建议,我将不胜感激。我的案例使用C++。

谢谢,venkat

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