MoveFile()工作,但返回错误2(未找到文件)
MoveFile() Works, but returns error 2 (file not found)
我正在使用Movefile()函数(在C中)。我可以看到文件从源文件夹移动到目的地(意味着Movefile成功),但当我做GetLastError()时,我得到错误编号。2 (ERROR_FILE_NOT_FOUND)。
有什么问题吗?
代码是:
_snprintf(szSrcPath, MAX_PATH, "%s/%s/%s.jpg", NPath, imagePathFromAdmin, username);
_snprintf(szDestPath, MAX_PATH, "%s/Images/Storage/%s/%d/%s.jpg", NPath, domain, sub_folder, username);
strcpy(imagePathStorgae,szDestPath);
MoveFile(szSrcPath,szDestPath);
err=GetLastError();
Do not如果函数成功,则得到错误码,值无效。相反,检查实际函数返回的值(即MoveFile
函数返回值),如果这表明发生了错误,然后您可以检查错误是什么。
如果API函数调用报告失败,则只意味着调用GetLastError
。检查CopyFile
和MoveFile
的返回值。如果其中一个返回FALSE
,那么API调用失败,然后,只有这样,调用GetLastError
是有效的。
文档是这样描述的:
如果函数成功,返回值非零。
如果函数失败,返回值为零。得到扩展误差信息,调用
GetLastError
。
发生的是MoveFile
成功并且没有修改最后一个错误值。然后,当您调用GetLastError
时,它返回在调用MoveFile
之前发生的对API函数的其他调用的错误代码。你应该这样写代码:
if (!MoveFile(szSrcPath,szDestPath))
{
DWORD err = GetLastError();
// handle the error
}
相关文章:
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- AcquireCredentialsHandleA() 返回 PFX 文件的0x8009030e(安全包中没有可用的凭据
- C++模板编程设计问题 - 根据输入文件返回不同的类型
- 为什么生成文件返回 g++: 错误: h 文件或目录 make: *** [生成文件:12: 测试] 错误 1?
- 将单独的头文件和类定义文件链接到主函数文件 - G++ 返回重载"undefined reference to"构造函数
- tellg() 只对小文件返回 -1
- 使用关键字从文本文件返回数字
- 读/写二进制文件返回0xcccccccccccc
- QMediaPlaylist::addMedia() 对于不存在的文件返回 true
- QFileInfo::isExecutable() 为".exe"文件返回 false
- C++ 头文件返回对类型
- 类对象的向量C++文件返回程序
- C++ 搜索 TXT 文件返回 int.
- C 编程 - 查找第一个文件返回Invalid_handle_value
- 从文本文件返回输出的函数
- 从c++ MEX文件返回值到MATLAB
- C++自定义读取函数为文件夹中的前两个文件返回错误的值
- GetFileAttributes为不存在的文件返回FILE_ATTRIBUTE_ARCHIVE
- 使用c++从xml文件返回char*以外的数据类型时出错
- 为什么创建文件返回无效句柄