c語言,如何複製檔案,C語言,如何複製檔案

時間 2021-12-19 07:34:56

1樓:匿名使用者

呼叫系統函式是以字串方式儲存的,而非二進位制。(因為dos\linux命令列下二進位制編碼無意義)

所以system()一定不滿足你的要求。

可以使用c的io函式達到你想要的目的

以下是簡要說明,不考慮出錯等問題:

所有io函式包含在stdio.h中(linuxc是,turboc應該也是吧,忘了)

1、定義原始檔和目標檔案指標file *fp_source,*fp_target

2、宣告乙個程式內資料存放區如char buffer[100],或呼叫malloc函式

3、用fp_source = fopen()開啟原始檔檔案

4、用fp_target = fopen()開啟目標檔案

5、while(feof(fp_source) == 0)//利用迴圈複製直到原始檔尾

6、別忘了close()關閉源\目標檔案

7、各函式使用方法請自行查詢,不贅述。

沒有寫全原始碼,但希望這條思路對你有幫助。

2樓:匿名使用者

這是因為你複製檔案時呼叫的dos命令,可以通過程式設計複製檔案(源程式如下)

#include

int main()

fclose(sfp);

fclose(dfp);

return(0);}

3樓:風若遠去何人留

有兩種方法可以使用

1 呼叫函式system(),可以執行系統shell命令,從而實現複製檔案功能。

比如在windows下可以

system("copy src dst /y");

其中src是原始檔,dst為目標檔案,/y開關表示不需要互動,強行複製。

如果在linux下,則可以使用

system("cp src dst");

其中src 和dst與之前含義相同。

2 可以自行寫函式進行複製

利用c語言的檔案操作函式,開啟檔案,讀取原始檔寫入目標檔案,最終關閉即可。

參考**如下

#include

void file_copy(char *src, char *dst)

while((c = fgetc(fp1)) != eof)//讀位元組

fputc(c, fp2); //寫資料

fclose(fp1);//關閉檔案

fclose(fp2);

return 0;}

c語言---如何複製任意檔案?

4樓:匿名使用者

c語言複製檔案主要由三種辦法,你可以根據自己的知識選用乙個

方法1)利用c語言的二進位制讀寫函式

自己用fopen開啟原始檔和目標檔案,然後用迴圈讀寫實現複製

方法2)利用作業系統的檔案複製函式

例如windows就有如下api函式可以複製檔案

bool copyfile(

lpctstr lpexistingfilename, // name of an existing file

lpctstr lpnewfilename, // name of new file

bool bfailifexists // operation if file exists

);第乙個引數是用來存放當前要處理檔案的路徑。

第二個引數是用來存放使用者指定的新路徑。

第三個引數它是用來判斷使用者指定的新路徑是否已經存在要存放的路徑,如果為true,則新路徑中已經存在該檔案了,該函式呼叫失敗,否則就呼叫成功。

方法3:c語言呼叫作業系統的copy命令

首先#include

然後 程式中 呼叫 system(「這裡寫 copy的完整命令」);

5樓:陽光上的橋

書上的txt就是記事本檔案,b就是其他一切檔案,函式就是那些,fopen,fread、fwrite,或者使用open、read、write。

另外,檔案複製可以使用system函式,例如:

system("copy c:\\abc.rmvb d:\\movies\\");

6樓:匿名使用者

b檔案 就是以二進位制形式複製檔案,這樣可以操作所有檔案

原則上,所有的檔案都應該以b形式來操作。之所以把txt檔案單列出來,是因為txt本身就是以ascii碼形式儲存的,你不管怎麼操作都不會損壞。

7樓:匿名使用者

因為書上的例子簡單,所以用txt檔案做講解

用fopen的時候用"b"的話,所有檔案都能複製的

相應的函式就是 fopen, fread, fwrite

如何實現c語言中複製檔案的程式

8樓:風若遠去何人留

1 以唯讀方式開啟第乙個檔案

2 以寫方式開啟第二個檔案

3 迴圈讀取字元,並寫入第二個檔案。直到遇到eof結束。

4 關閉檔案。

**:#include

int main()

9樓:匿名使用者

要是只複製乙個檔案的話,流程如下:

1. 開啟讀檔案,準備寫檔案

2. 讀檔案到緩衝

3. 將緩衝內容寫到寫檔案

4. 如果所有內容複製完畢,關閉檔案

10樓:

下面的**可以實現複製檔案的功能,用法:程式名稱 源檔名 目標檔名,有什麼問題注意看提示

#include

#include

#include

#include

#include

#include

#include

#define buffer_size 1024

int main(int argc,char **argv)

/* 開啟原始檔 */

if((from_fd=open(argv[1],o_rdonly))==-1)

/* 建立目的檔案 */

if((to_fd=open(argv[2],o_wronly|o_creat))==-1)

/* 以下**是乙個經典的拷貝檔案的** */

while(bytes_read=read(from_fd,buffer,buffer_size))

} /* 寫的時候發生的致命錯誤 */

if(bytes_write==-1)

break;

} }close(from_fd);

close(to_fd);

system("pause");

exit(0);

return 0;}

怎樣用c語言將檔案複製另外的資料夾

11樓:匿名使用者

//純api,win32_find_dataa可以得到檔案時間、大小位元組資訊,稍加修改可以對時間上,文//件大小上對檔案進行約束分類,這個程式是遍歷檔案的乙個變種,測試通過完全符合你的要求

//對了。這個程式跳過前面位元組,遍歷d:\\123下的所有檔案,排除除txt格式外的任何檔案,就像

aaasdsad5.txt也將被複製,因為最後位元組為5

#define _win32_winnt 0x500//使createhardlink可用

#include

#include "iostream.h"

#include "stdarg.h"

#include "stdio.h"

win32_find_dataa lpffd;

handle file;

uint count=1;

char* fpath="f:\\abc";//在這裡改輸出路徑,從d:\123的5的倍數檔案複製到f:\abc裡的1、2、3

char* dpath="d:\\123";//在這裡改輸入路徑

char dpath[50];

char fpath[50];

char newfilename[10];

bool needcopy(char* filename)

if((filename[i-1]=='0')||(filename[i-1]=='5'))}}

return 0;

}void link(char* a1,char* a2,char* result)

for(i=0;a2[i]!='\0';i++)

result[j]='\0';

}void main()}}

else

system("pause");}

12樓:匿名使用者

這個問題一般有兩種方法,第一種是採用兩個檔案指標,然後不斷地讀原始檔案,並不斷地寫入到新檔案中去。

另一種則是採用windows函式copyfile。

13樓:veket的小號

只幫你解決路徑問題 ,剩下的自己做功課查資料去#include

#include

#include

int main()

return 0;}

14樓:謝應宸

複製的話可以呼叫syste函式

直接使用dos指令來操作

15樓:風若遠去何人留

有兩種方式可以實現複製:

一、自行編寫函式,實現複製。

演算法流程如下:

1 以讀的方式開啟原始檔,以寫的方式開啟目標檔案;

2 每次讀乙個位元組,並寫到目標檔案中,直到達到檔案結尾為止;

3 關閉兩個檔案。

二、呼叫系統命令。

stdlib.h中的system函式,可以執行系統命令行支援的命令。

int system(char *cmd);

呼叫時就是執行cmd中的指令。

1 對於windows,就是執行dos命令,可以呼叫system("copy /y src_file target_dir");

其中src_file為原始檔,而target_dir就是目標資料夾。

2 對於linux,需要執行shell命令cp,如下system("cp src_file target_dir");

c語言複製檔案,c語言複製檔案

照著api文件一步步來 沒問題的!include include int main fseek fp,0l,seek end len ftell fp a char malloc sizeof char len fseek fp,0l,seek set fread a,len,1,fp free f...

c語言複製檔案問題,C語言複製檔案問題

一騎當後 c語言中有很多對檔案進行操作的工具,可以利用fgetc 和fputc 來實現檔案的拷貝功能。比如 目的 在 home cosmos c code目錄下有乙個名為students.txt的原始檔,想將其拷貝到目錄 home cosmos 下,並命名為students copy.txt。如下 ...

c語言如何讀取檔案,C語言如何讀取檔案?

蒯懿靖迎夏 乙個c語言讀寫檔案程式 include stdio.h include main fclose fp1 關閉檔案a.txt,有開啟就要有關閉fclose fp2 關閉檔案b.txt 乙個檔案流指標對應乙個開啟的檔案,因為你要同時操作兩個檔案,所以要用兩個檔案流指標 就像你要同時操作兩個箱...

如何實現c語言中複製檔案的程式,如何實現C語言中複製檔案的程式

風若遠去何人留 1 以唯讀方式開啟第乙個檔案 2 以寫方式開啟第二個檔案 3 迴圈讀取字元,並寫入第二個檔案。直到遇到eof結束。4 關閉檔案。include int main 要是只複製乙個檔案的話,流程如下 1.開啟讀檔案,準備寫檔案 2.讀檔案到緩衝 3.將緩衝內容寫到寫檔案 4.如果所有內容...

c語言怎麼呼叫dll檔案,C語言如何呼叫DLL

1 新建dlltest資料夾,在該資料夾中新建source資料夾。2 在source資料夾中造add.c。3 win r cmd請出總指揮 命令列 輸入。4 繼續輸入 路徑也要隨機應變 link dll out e vcfile dlltest source add.dll e vcfile dll...