带有MOVEFILE_REPLACE_EXISTING标志的MoveFileEx因LastError = 183而失败

时间:2018-07-16 21:30:33

标签: visual-c++ movefileex

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

BOOL b = MoveFileEx(ExistingFileSpec, NewFileSpec, MOVEFILE_REPLACE_EXISTING | MOVEFILE_WRITE_THROUGH | MOVEFILE_COPY_ALLOWED);

这似乎在大多数系统上都能正常工作,但是在两个系统上,我们在日志文件中收到以下警告:-

  

2018年6月11日10:58:05.437 W.常见警告C:\ Program Files \ Configuration \ Stores.xml上的MoveFile失败到C:\ Program Files \ Configuration \ Backup \ Stores.xml LastError = 183

Lasterror =183的意思是“ ERROR_ALREADY_EXISTS

这很奇怪,因为MOVEFILE_REPLACE_EXISTING专门用于在目标文件存在时使此命令起作用。

这是在Win7 x86机器上发生的。

在先前版本的代码中使用MoveFile,但在确保目标文件不存在之前立即进行了DeleteFile调用。当代码回滚到该版本时,它可以工作。

有什么建议吗?

0 个答案:

没有答案