在网上有一种东西叫做“图种”,好奇,于是搜索了相关资料,
其实就是把压缩文件简单的拼接到图片文件后面而已;
·windows批处理实现:
</pre><pre name="code" class="plain">@echo off
cd %~dp0
echo ================文件合并==================
echo.
echo 请把要合并的两个文件放和本程序放到同一目录下
echo.
set /p a=输入文件a的文件名(包括扩展名):
echo.
set /p b=输入文件b的文件名(包括扩展名):
echo.
set /p c=输入合并后的文件名(包括扩展名):
echo.
echo 开始合并!
copy /b %a%+%b% %c%
pause
将以上代码复制到一个txt文档后,然后修改后缀名为.bat。然后双击运行它, 根据提示操作,但要注意一点,必须先输入图片的文件名,合并后的文件名必须是图片格式(和你用的那张图片的格式一样)。
合并成功之后关闭窗口你会发现多出了一个图片文件 ,双击打开它是一张图片,但是如果你修改它的后缀名(扩展名)为rar(如果你打包的是zip则改为zip),再双击打开它,它变成了一个压缩文件,如果你把后缀名改回来,它又变成了一张图片了。
这个程序还能合成其他文件,比如 MP3 ,你可以把两首MP3合并为一首以此实现两首连续播放,你还可以用它来合并两个txt文档。
了解了它的工作原理,于是我用c语言写了一个小程序实现了同样的功能。
以下是C语言源代码:
了解了它的工作原理,于是我用c语言写了一个小程序实现了同样的功能。
以下是C语言源代码:
<pre name="code" class="cpp">#include<stdio.h>
int main()
{
FILE *file1;
FILE *file2;
FILE *save;
char a[30];
char b[30];
char s[30];
int ch;
printf("\n\n\t\t文件合并器\n");
printf("================================================\n\n");
printf(" 请将需要合并的两个文件放到和本软件相同的目录下 \n\n");
printf("================================================\n\n");
printf("输入文件a的文件名(包括扩展名):");
gets(a);
printf("输入文件b的文件名(包括扩展名):");
gets(b);
printf("输入合并后保存的文件名(包括扩展名):");
gets(s);
printf("\n开始合并。。。。\n");
if((file1=fopen(a,"rb"))==NULL){printf("\n%s打开失败!\n\n\a按任意键退出",a);getchar();return 0;}
if((file2=fopen(b,"rb"))==NULL){printf("\n%s打开失败!\n\n\a按任意键退出",b);getchar();return 0;}
if((save=fopen(s,"ab"))==NULL){printf("\n%s保存失败!\n\n\a按任意键退出",s);getchar();return 0;}
while(1){
fread(&ch,1,1,file1);
if(feof(file1)!=0)break;
fwrite(&ch,1,1,save);
}
while(1){
fread(&ch,1,1,file2);
if(feof(file2)!=0)break;
fwrite(&ch,1,1,save);
}
printf("\n\n合并成功!\a\n\n按任意键退出!");
getchar();
fclose(file1);
fclose(file2);
fclose(save);
return 0;
}