[英]can't get copyfile to work
我只是想使用 copyfile 來復制文件,就這么簡單,但它不起作用。 我用谷歌搜索並查看了 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,編譯為調試,抱歉,如果我錯過了什么。
替換行:
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;
}
這應該告訴你它是否以及為什么失敗。 獲得錯誤代碼后,可以在此處查找。
如果,如您的評論所示,您收到ERROR_PATH_NOT_FOUND
,我首先要看的是路徑c:\\somefolder
和c:\\folder
存在以及實際的源文件c:\\somefolder\\file.txt
。
要記住的一件特別的事情: CopyFile
不會為目標文件創建目錄,它必須在您嘗試復制之前存在。 有很多方法可以做到這一點,例如使用CreateDirectory
、 CreateDirectoryEx
或SHCreateDirectoryEx
)。
如果您使用 fopen(...) 或 CloseHandle(HANDLE) 如果您使用文件的句柄(如 hFile...)...它有效!
ANTARES (IT)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.