❶ 怎樣用C語言將文件復制另外的文件夾
有兩種方式可以實抄現復制:
一、自襲行編寫函數,實現復制。
演算法流程如下:
1
以讀的方式打開源文件,以寫的方式打開目標文件;
2
每次讀一個位元組,並寫到目標文件中,直到達到文件結尾為止;
3
關閉兩個文件。
二、調用系統命令。
stdlib.h中的system函數,可以執行系統命令行支持的命令。
int
system(char
*cmd);
調用時就是執行cmd中的指令。
1
對於windows,就是執行dos命令,可以調用
system("
/Y
src_file
target_dir");
其中src_file為源文件,而target_dir就是目標文件夾。
2
對於Linux,需要執行shell命令cp,如下
system("cp
src_file
target_dir");
❷ 我想復制一個文檔,但是很長,怎麼快速復制
一.復制整篇文檔的基本操作:打開文檔所在位置的文件夾,用滑鼠選中准備復制的文檔。
方法一:在選中的文檔圖標上點擊滑鼠右鍵,選「復制」,再另外打開你需要復制存放的位置(比如U盤),點滑鼠右鍵,選「粘貼」,OK。
方法二:在選中需復制的文檔後,同時按下鍵盤上的ctrl+C(復制),再找到要復制的位置(如U盤),按鍵盤上的ctrl+V(粘貼),OK。
方法三:選中需復制的文檔後,按下鍵盤上的ctrl鍵,用滑鼠單擊左鍵不放,將文檔拖到要復制的位置,放開滑鼠左鍵,OK。
二.選擇性復制部分文檔的操作:打開需要復制的文檔,選擇以下操作之一:
方法一:按 鍵盤上的AIT+A(全選),再將游標點到另外你想要復制的位置,然後按鍵盤上的ctrl+V(粘貼)。OK
方法二:點擊「編輯」菜單里「全選」,再點擊「復制」,將游標點到另外你想要復制的位置,然後點擊「粘貼」。OK
方法三:如果是選文檔中的一部分,就將游標點到需要的那部分文檔的開頭,然後按住Shift,再到所需要文檔的結尾處點擊滑鼠左鍵,然後「復制」——「粘貼」。OK
❸ C語言函數編寫:文件復制
C語言實現一個簡單的文件復制功能,Linux環境下。
思路步驟:(下代碼最重要的邏輯步驟清晰)
第一步:打開源文件(要復制的文件),打開文件的方式以讀的方式就可以了。
Linux C打開文件的庫函數有:int open(const char *pathname,int flags),int open(const char *pathname,mode_t mode),以及 FILE*fopen(const char *path,const char *mode),FILE *fdopen(int fd,const char *mode),這幾個函數,具體的使用方法就查看manual就可以了。
第二步:創建目標文件,所用的函數也是上面那幾個。
第三步:讀取文件。庫函數有:size_t read(int fd,void *buf,size_t count),
size_t fread(void *ptr,size_t size,size_t nmemb,FILE *stream)
第三步:寫入目標文件。用的庫函數:size_t write(int fd,void *buf,size_t count),
size_t fwrite(void *ptr,size_t size,size_t nmemb,FILE*stream)
第四步:關閉文件。庫函數:int fclose(FILE*fp) ,int close(int fd)
思路步驟就是這樣子的了。下面是具體的代碼實現。
#include
#include
#include
#include
#include
#include
int main(int argc,char *argv[])
{
int fd_source_file,fd__file;//用接受int open()函數返回的值
//FILE *fp_source_file,*fp__file;//如果用FILE *fopen()函數的話
int size_read,size_write;
char buf[1024];
char _file_name[50];
//檢查參數的輸入
if(argc<3)
{
printf("usage: ./a.out source_file_path _file_path\n");
exit(1);
}
//復制目標文件名
strcpy(_file_name,argv[2]);
//打開源文件
if( (fd_source_file=open(argv[1],O_RDONLY,00744))<0 )
{
perror("open source file error");
exit(1);
}
//創建目標文件
if( (fd__file=open(argv[1],O_CREAT|O_RDWR)) <0 )
{
perror("create file error");
exit(1);
}
do
{
//讀取文件內容
if( (size_read=read(fd_source_file,buf,1024)) <0 )
{
perror("read source file error");
exit(1);
}
//寫入目標文件
if( (size_write=write(fd__file,buf,sieze_read))<0 )
{
perror("wrire file error");
exit(1);
}
}while(size_read==1024)
return 0;
}