我们有一个应用程序,它通过使用以下命令将配置文件复制到子文件夹(请参阅下面的日志文件条目)来备份配置文件:-
BOOL b = MoveFileEx(ExistingFileSpec, NewFileSpec, MOVEFILE_REPLACE_EXISTING | MOVEFILE_WRITE_THROUGH | MOVEFILE_COPY_ALLOWED);
这似乎在大多数系统上按预期工作,但在两个系统上,我们在日志文件中收到以下警告:-
2018 年 6 月 11 日 10:58:05.437 W. 常见警告 MoveFile 在 C:\Program Files\Configuration\Stores.xml 到 C:\Program Files\Configuration\Backup\Stores.xml 上失败 LastError=183
Lasterror =183
意思是“ ERROR_ALREADY_EXISTS
”
这很奇怪,因为MOVEFILE_REPLACE_EXISTING
它专门用于在目标文件存在时启用此命令。
这发生在Win7 x86
机器上。
在以前的版本中MoveFile
使用了代码,但DeleteFile
在确保目标文件不存在之前立即调用。当代码回滚到这个版本时,它就可以工作了。
有什么建议么?