Visual c++ 带有MOVEFILE\u REPLACE\u现有标志的MoveFileEx失败,LastError=183

Visual c++ 带有MOVEFILE\u REPLACE\u现有标志的MoveFileEx失败,LastError=183,visual-c++,movefileex,Visual C++,Movefileex,我们有一个应用程序,它通过使用以下命令将配置文件复制到子文件夹(请参见下面的日志文件条目)来备份配置文件:- BOOL b = MoveFileEx(ExistingFileSpec, NewFileSpec, MOVEFILE_REPLACE_EXISTING | MOVEFILE_WRITE_THROUGH | MOVEFILE_COPY_ALLOWED); 这似乎在大多数系统上都能正常工作,但在两个系统上,我们的日志文件中会出现以下警告:- 2018年6月11日10:58:05.437

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

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到C:\Program Files\Configuration\Backup\Stores.xml的通用警告移动文件失败LastError=183

Lasterror=183
表示“
错误已经存在”

这很奇怪,因为
MOVEFILE\u REPLACE\u EXISTING
专门用于在目标文件存在时启用此命令

这在
Win7 x86
机器上发生

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


有什么建议吗?

显然,由于其他不明确的原因,它无法替换现有文件。在摇摇欲坠的文件系统问题中,最热门的是反恶意软件。由于DTD注入漏洞,他们对待XML文件就像对待污垢一样。我已经确认,一个网站正在运行赛门铁克,但另一个没有。问题在第一个站点并不一致-一些机器遇到问题,其他机器没有。在第二个站点上,我们设置了一个测试,该测试已更改为使用ReplaceFile而不是MoveFile。