复制是我们常用的功能,很多人一套ctrl+c ctrl+v已经用的如火纯青,出神入化。
我们编程也同样需要常用文件复制功能。
但是!

它不是自带的,需要我们自己写,但也好在十分简单,所以大家不要担心,跟着我写起来。
首先我们来屡屡思路, 需要实现文件复制我们需要开辟一个缓冲区,不断从原文件中读取内容到缓冲区,每读取完一次就将缓冲区中的内容写入到新建的文件,直到把原文件的内容读取完。
那么这里大家需要注意一点,一个重点,缓冲器要开辟多大? 嗯哼?
大了中复制较少的内容时,会浪费很多,也没法明显提高读取速度。
小了会增加读取次数。
那么有没有一个中间数,这个是有的。那么就是4k。关于为什么是4k 这个涉及到内存就不多解释了。
现在我们有了思路,下面开始写函数。
int copyFile(char fileRead, char fileWrite){ FILE fpRead; // 指向要复制的文件 FILE fpWrite; // 指向复制后的文件 int bufferLen = 10244; // 缓冲区长度 char buffer = (char)malloc(bufferLen); // 开辟缓存 int readCount; // 实际读取的字节数 if( (fpRead=fopen(fileRead, \"rb\")) == NULL || (fpWrite=fopen(fileWrite, \"wb\")) == NULL ){ printf(\"Cannot open file, press any key to exit!\n\"); getch(); exit(1); } // 不断从fileRead读取内容,放在缓冲区,再将缓冲区的内容写入fileWrite while( (readCount=fread(buffer, 1, bufferLen, fpRead)) > 0 ){ fwrite(buffer, readCount, 1, fpWrite); }ok到这里函数写完了 文章也没有了,还想看就翻我的旧文吧。 觉得我文章还可以的可以关注,收藏,转发,评论。谢谢大家!