//复制文件
void CopyFile(char* s1,char* s2)
{
FILE * file1,*file2;
//使用二进制模式打开文件
file1 = fopen(s1,"rb"); // rb 表示读
file2 = fopen(s2,"wb"); // wb 表示写
if(!file1)
{
printf("文件%s打开失败!",s1);
return;
}
char c;
int index = 0;
fseek(file1,0,SEEK_END); //将源文件定位到文件尾
int length = ftell(file1); //获取当前位置,即文件大小(按字节算)
//printf("%d\n",length); //此处可输出字节数,以进行验证
if(!length)
return;
while(!fseek(file1,index,SEEK_SET)) //循环定位文件,向后移动一个字节
{
fread(&c,1,1,file1); //从源文件读取一个字节的内容到 中间变量 c
fwrite(&c,1,1,file2); //将这个字节的内容写入目标文件
if(index == length - 1) //如果已经读到文件尾,则跳出循环
{
break;
}
index++; //往后推进一个字节
}
fclose(file1); //关闭源文件
fclose(file2); //关闭目标文件
}
C语言实现的二进制文件复制
最新推荐文章于 2023-06-24 11:38:47 发布