4

我们有一个应用程序,它通过使用以下命令将配置文件复制到子文件夹(请参阅下面的日志文件条目)来备份配置文件:-

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在确保目标文件不存在之前立即调用。当代码回滚到这个版本时,它就可以工作了。

有什么建议么?

4

0 回答 0