簡體   English   中英

無法讓復制文件工作

[英]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:\\somefolderc:\\folder存在以及實際的源文件c:\\somefolder\\file.txt

要記住的一件特別的事情: CopyFile不會為目標文件創建目錄,它必須在您嘗試復制之前存在。 有很多方法可以做到這一點,例如使用CreateDirectoryCreateDirectoryExSHCreateDirectoryEx )。

如果您使用 fopen(...) 或 CloseHandle(HANDLE) 如果您使用文件的句柄(如 hFile...)...它有效!

ANTARES (IT)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM