栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言实现文件的分割和组合

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言实现文件的分割和组合

一、设计思路

执行编写的代码后,在命令行中根据输入的相关参数,将文件进行分割(s)/组合(c)。

二、流程图

 三、代码与运行结果

#include 
#include 

int main(int argc,char* argv[])
{
	FILE *fplist; 
	FILE *fpsource; 
	FILE *fptarget; 
	FILE *fpblock; 
	
	char file_block_name[64]; 
	int  file_block_id;
	int i;
	long lblock; 
	long lpos_cur; 
	unsigned int size_r; 
	
	char data;
	char *pchar;

	for(i=0;i0)
		{
			fwrite(&data,sizeof(char),1,fpblock);
			lpos_cur = ftell(fpsource); 
			if(lpos_cur % lblock == 0)
			{
				
				
				fclose(fpblock);
				
				fputs(file_block_name,fplist);
				fputs("n",fplist);
				file_block_id++;
				sprintf(file_block_name,"%s.%02d",argv[3],file_block_id);
				
				fpblock = fopen(file_block_name,"wb");
			}
			size_r = fread(&data,sizeof(char),1,fpsource);
		}
		if(fpblock)
		{
			fputs(file_block_name,fplist);	
			fclose(fpblock);
		}
		fclose(fplist);
		fclose(fpsource);
	}
	
	if(argv[2][0] == 'c') 
	{
		printf("进行文件组合程序.....n");
		printf("组合文件列表为:%sn",argv[3]);
		printf("组合文件保存为:%sn",argv[4]);

		fptarget = fopen("miku.png","wb");
        if(!fptarget)
		{
			printf("文件创建失败!");
			exit(1);
		}
		fplist = fopen("demolist.txt","r");
		pchar = fgets(file_block_name,64,fplist);

		while(pchar != NULL)
		{   
			if(file_block_name[strlen(file_block_name)-1] == 'n')
			{
				file_block_name[strlen(file_block_name)-1] = '';
			}
			printf("%s",file_block_name);
			fpsource = fopen(file_block_name,"rb");
			if(!fpsource)
			{
				printf("打开文件%s失败n",file_block_name);
				exit(1);
			}

			size_r = fread(&data,sizeof(char),1,fpsource);
			while(size_r > 0)
			{
				fwrite(&data,sizeof(char),1,fptarget);
				size_r = fread(&data,sizeof(char),1,fpsource);
			}
			fclose(fpsource);
			pchar = fgets(file_block_name,64,fplist);
		}
		fclose(fptarget);
	}
	return 0;
}

文件分割:

cmd命令切换到程序的目录,再输入“filecs -t s demo.png 102400 demolist.txt”命令对demo.png图像文件进行分割。

执行分割后:

 

文件组合: 

cmd命令切换到程序的目录,再输入“filecs -t c demolist.txt miku.png”命令读取demolist文本文件中文件名中数据组合生成新的文件miku.png。

执行组合后: 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/528886.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号