copyfile檔案操作函式的疑問 c

時間 2022-04-07 09:30:18

1樓:匿名使用者

呼叫api copyfile 複製檔案,定義於kernel32.dll。其函式原型如下:

bool winapi copyfile(

__in lpctstr lpexistingfilename,

__in lpctstr lpnewfilename,

__in bool bfailifexists

);頭部的bool 說明copyfile的返回值為布林值,只有複製成功或複製失敗。bool型別對應au3中的int型。

第乙個引數lpexistingfilename,指定要複製的檔案,lpctstr為引數型別,對應於au3中的str。

第二個引數lpnewfilename, 指定新檔名,引數同樣對應於au3中的str。若此引數指定為某資料夾路徑而非某檔名,函式將執行失敗,錯誤值將設為5(拒絕訪問)。

第三個引數bfailifexists, 指定乙個bool值(真或假),用於說明是否覆蓋已經存在的檔案。真為覆蓋,假為不覆蓋。

如果新檔案已經存在,並且bfailifexists指定為false,函式則執行失敗。如果新檔案不存在,則copyfile函式忽略這個引數。如果函式最終返回0(假),說明函式執行失敗。

呼叫getlasterror(定義於kernel32.dll中)返回其擴充套件的錯誤值。

***************===

是不是第二個引數有問題?

2樓:椴

copyfile

2c++編輯

函式原型

bool copyfile(lpctstr lpexistingfilename,lpctstr lpnewfilename,bool bfailifexists );

程式例1

copyfile("c:\\file1.txt","c:\\file2.txt",true);

說明 複製檔案。

原型:bool copyfile;

引數 型別及說明:

lpexistingfilename string,源檔名lpnewfilename string,目標檔名bfailifexists long,如果設為true(非零),那麼一旦目標檔案已經存在,則函式呼叫會失敗。否則目標檔案被改寫

返回值long,非零表示成功,零表示失敗。會設定getlasterror

3樓:

沒指定新檔案的檔名 this function copies an existing file to a new file. 這是msdn的說明

4樓:匿名使用者

if(copyfile("e:\\ide\\abac.txt","f:\\vc",true)!=0)

改為if(copyfile("e:\\ide\\abac.txt","f:\\vc\\abac.txt",true)!=0)

c++的copyfile函式應用

5樓:東哥

這是**錯誤,導致路徑錯誤,把copyfile("c:\\1.bmp","d:

\\test.bmp",true);改成copyfile("c:\\1.

bmp",".\\test.bmp",true);就可以了。

函式原型:

bool copyfile(lpctstr lpexistingfilename,lpctstr lpnewfilename,bool bfailifexists );

程式例:

copyfile("c:\\file1.txt","c:\\file2.txt",true);

說明:複製檔案,與vb的filecopy命令相似

返回值:

bool,非零表示成功,零表示失敗。會設定getlasterror

參數列:

引數型別及說明 :

lpexistingfilename string,源檔名

lpnewfilename string,目標檔名

bfailifexists long,如果設為true(非零),那麼一旦目標檔案已經存在,則函式呼叫會失敗。否則目標檔案被改寫。

6樓:匿名使用者

.和..代表相對路徑.

代表程式當前目錄.. 代表程式上層目錄只要把copyfile("c:\\1.

bmp","d:\\test.bmp",true);改成copyfile("c:

\\1.bmp",".\\test.

bmp",true);就ok

c++中有沒有複製檔案的函式?

7樓:都市孤星

c++只是一種語言而已,使用這種語言的編譯器並不僅僅是turbo c乙個。不同的編譯器使用的函式也不盡相同。

如果你使用的編譯器是turbo c,那你應該使用system()函式,該函式的宣告如下:

int system(const char *command);

該函式允許你向作業系統傳送dos命令以實現你的目的,比如:

system("copy filea.exe fileb.exe");

在基於windows平台的高階編譯環境中,編譯器通常會使用一些windows api函式來實現一些更加豐富的功能。

在bcb、vc中,你可以直接使用windows api函式,而這些函式就如同編譯器自身的函式一樣。在windows api中,用於複製檔案的函式是copyfile(),該函式的宣告如下:

bool copyfile(

lpctstr lpexistingfilename, // 源檔名

lpctstr lpnewfilename, // 目標檔名

bool bfailifexists // 告訴系統當目標檔案存在時如何操作

);當bfailifexists為true時,如果目標檔案存在,則函式執行失敗;當bfailifexists為false時,如果目標檔案存在,則覆蓋目標檔案。

舉例:copyfile("c:\\filea.exe","d:\\filea.exe",false);

當然,你也可以使用檔案操作函式來實現檔案複製功能,條條大路通羅馬,成功的路不止一條,就看你喜歡如何去做了。

8樓:湛藍水晶

沒有,複製檔案要呼叫作業系統的api或者用檔案操作語句。

9樓:傲世修羅王

其實直接的沒有, 但是你可以寫乙個拷貝檔案的批處理, 然後在程式中呼叫它不就完了麼, 還有也可以使用檔案操作函式完成拷貝, 先建立乙個檔案, 然後, 將原始檔的內容全部讀到這個新檔案中.

10樓:匿名使用者

c++語言沒有複製檔案的函式。不但如此,常見的任何程式語言也都沒有。在c++程式中複製檔案,如果講究執行效率的話就需要自己編乙個複製函式,如果圖方便的話就直接使用作業系統命令。

11樓:王牌使用者

直接複製檔案的沒有,但是你可以用

system("copy filea fileb");

12樓:

常見的任何程式語言也都沒有。

13樓:皇家救星

system("copy a.txt b.txt");

如何呼叫API中的copyfile函式複製檔案

要站在高一點看問題 1,函式 通常用 變數 函式名 引數列表 這樣,執行了這個命令,就返回乙個值給變數 所以,這樣你就記住函式的使用 呼叫 格式 2,引數列表,是呼叫函式的時候,要告訴函式的自變數。declare function copyfile lib kernel32 alias copyfi...

cstring類的檔案操作,C string類的檔案操作

std 中的string 不是基本資料型別,可以認為是乙個類,其內部成員有字串的指標,字串的長度,字元目前分配的空間大小 等 其實這個問題,也就是char a 10 和 char a 區別的問題 測試sizeof a 可以驗證出str可以是任意長的資料,而sizeof a 是不變的,證明了str 裡...

如何操作刪除linux伺服器檔案下的檔案

linux裡刪除檔案或者資料夾下所有檔案的方法如下 1 rm rf 檔名。2 如果你要刪除資料夾以及資料夾下所有的內容也使用上述命令3 在沒有確認好是否刪除前,請使用 rm r 檔名。這樣沒刪乙個檔案都會問你是否刪除,選擇是才刪除,否則不會刪除。兩種方法 echo mygroup 相當於是給裡面追加...

php寫函式,能夠遍歷資料夾下的所有檔案和子資料夾

php 手冊裡就有 你還這麼多分 懸賞 php中寫乙個函式,能夠遍歷乙個資料夾下的所有檔案和子資料夾 if handle opendir dir 開啟乙個 代表該目錄 的控制代碼handle,控制代碼理解成乙個物件就行 while file readdir handle false 嘗試從目錄中讀乙...

怎麼才能恢復自己誤操作刪除的檔案

每個使用者的硬碟中都存放著大量的有用資料,而硬碟又是乙個易出毛病的部件。為了有效的儲存硬碟中的資料,除了有效的儲存硬碟中的資料,備份工作以外,還要學會在硬碟出現故障時如何救活硬碟,或者提取其中的有用資料,把損失降到最小程度。1 系統不承認硬碟 此類故障比較常見,即從硬碟無法啟動,從a盤啟動也無法進入...