是否可以重命名已在使用的xls文件
Is it possible to rename a xls file already in use?
我是这个论坛的新手。我正在编写一个程序,将文件从一台机器同步到另一台机器。虽然它运行良好,但我在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中,无法重命名(或删除)当前打开的文件。据我所知,这是没有办法的。唯一的方法是等待其他进程关闭该文件。当然,如果是某种东西打开了文件,这可能需要一段时间。
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 命名空间中具有.h和.cpp文件的类
- 如何使用ndk-build.cmd构建Android.so文件
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 读取文件并输入到矢量中
- 在C++中查找文件
- c++库的公共头文件中应该包含什么
- 用c++从输入文件中读取另一行
- Cppcheck生成xml转储文件
- 是否可以重命名已在使用的xls文件
- 如何将.xls文件作为单独的进程打开
- 如何在linux中使用cpp读取.xls文件
- 检查当前文件是否为doc、docx、xls、xlsx或pdf格式