我在使用 Windows API 将文件从一个位置移动到另一个位置的应用程序时遇到问题。问题不在于代码,它似乎是项目设置,但我不知道要查找什么或在哪里。
我创建了一个项目,编写了大量代码,然后开始实现移动位。在测试中,我不断收到“拒绝访问”的结果。经过大量挠头后,我创建了一个新项目来对移动代码进行单元测试。它工作得很好。我将已知的工作代码批发复制到原始项目中,删除其他所有内容并重新运行。拒绝访问。因此,两个项目之间的唯一区别在于项目设置中的内容。我还检查了资源管理器中两个 exe 文件的安全设置。两者都与我作为所有者相同。
请任何人都可以建议我需要在设置中检查/更改什么?我不想费力尝试手动比较这两个项目设置。
非常感谢。
对于任何感兴趣的人,我正在运行的代码是:
#include <windows.h>
#include <string>
#include <stdio.h>
void main(int argc, char** argv)
{
std::string srcPath = "S:\\_UploadTests\\Oct_10";
std::string dstPath = "S:\\_archivedtests\\Oct_10";
BYTE flags;
flags = MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING;
if (!MoveFileExA(srcPath.c_str(), dstPath.c_str(), flags)) {
fprintf(stderr, "Error moving folder to local archive. \n\tWindows returned code: %ld\n", GetLastError());
}
getchar();
}