我只是想使用copyfile来复制文件,它就像那样简单,但它不会工作。我用Google搜索并查看了20个链接,他们都说“object.CopyFile ( source, destination[, overwrite] ) "
问题是我无法让它为我复制txt文件,我已经尝试将其作为管理员运行但仍然无效。我也需要把源和目的地放在一起 lpctstr(因为它不会使用多字节字符编译而我的其他代码将不起作用,除非我使用Unicode字符集)。
我的代码是
#include <iostream>
#include <Windows.h>
using namespace std;
int main()
{
CopyFile("C:\\Somefolder\\file.txt","C:\\folder\\file.txt",0);
return 0;
}
我正在运行Windows 7,vc ++ 2010,编译为调试,对不起,如果我错过了什么。
答案 0 :(得分:13)
替换行:
CopyFile("C:\\Somefolder\\file.txt","C:\\folder\\file.txt",0);
使用:
BOOL b = CopyFile("C:\\Somefolder\\file.txt","C:\\folder\\file.txt",0);
if (!b) {
cout << "Error: " << GetLastError() << endl;
} else {
cout << "Okay " << endl;
}
那应该告诉你它是否以及为什么失败了。您可以查看错误代码here。
如果,正如您的评论所示,您收到的是ERROR_PATH_NOT_FOUND
,那么首先我要关注的是路径c:\somefolder
和{{1存在以及实际的源文件c:\folder
。
要记住一件特别的事情:c:\\somefolder\file.txt
不会为目标文件创建目录,它必须在您尝试复制之前存在。您可以通过多种方式执行此操作,例如使用CreateDirectory
,CreateDirectoryEx
或SHCreateDirectoryEx
)。
答案 1 :(得分:-1)
如果您使用fopen(...)或CloseHandle(HANDLE),如果您使用HANDLE文件(如hFile ...),则必须检查以使用fclose(FILE *)关闭文件... 对我来说,它有效!
ANTARES(IT)