【发布时间】:2016-04-01 18:44:10
【问题描述】:
所以,在开始之前,我一直在研究(不仅在 Stack Overflow),但我找不到解决问题的方法。
我正在尝试使用 Windows 的 CopyFile 函数将文件复制到某个位置(如果可能,在复制它的同时更改其名称)。
我创建了一个示例程序来显示错误。
#include <iostream>
#include <Windows.h>
using namespace std;
int main()
{
cout << "Copy in progress" << endl;
bool X = CopyFile(L"test.txt", L"C:\\", 1); //NOT C: nor C:\\
if (!X){ cout << "FALLO AL COPIAR\n"; cout << "Error: "<<GetLastError();}
else{ cout << "COPIADO CORRECTO"; }
cin.get(); cin.get();
return 0;
}
GetLastError() 返回 3 - 这意味着 ERROR_PATH_NOT_FOUND - 但是,相信我,我已经检查了每个文件(test.txt 与构建的 .exe 在同一个位置,我以管理员身份运行......)和它仍然给出 3。
我无法让它工作。请注意 L"test" 这样做是因为我使用具有某些字符集设置的 Visual Studio,我尝试更改该配置并使用 "test.txt" -> 仍然是错误 3。
【问题讨论】:
-
您是否尝试过使用完整路径?
-
永远不要发布代码截图。而是发布代码。屏幕截图会避开文本搜索,让您的问题不易被发现。
-
我恢复了编辑。请让我们坚持原来的问题。如果您不明白
L的含义以及使用它的原因,那么您还没有准备好在 Windows 上编写代码。 -
CopyFile 是一个经过测试、验证、信任和记录的 API。如果它说,错误 0x3,那肯定意味着,你以某种方式弄乱了文件的路径(在源或目标或两者中)。
标签: c++ windows winapi file-copying