您的位置:首页 > 编程语言 > C语言/C++

C语言实现的二进制文件复制

2015-02-10 15:00 302 查看
//复制文件 
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);						//关闭目标文件 
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: