注册 登录
编程论坛 C语言论坛

如何打包多个png,jpg,mp4之类的文件变成一个dat或者arc文件

seahdiao 发布于 2020-10-17 12:41, 2011 次点击
如题,上网找的都是要用到linux的库, windows的找了很久都找不到。如果可以的话请大佬写个简单的程序来让我研究研究。感觉大佬。
4 回复
#2
seahdiao2020-10-19 14:09
上网找了找很像是把文件一binary方式读入,再全部写进去同一个文件。下面是我自己想的方法

程序代码:

    char i;
    FILE* pic=fopen("pic.jpg", "rb");
    FILE* pic2= fopen("pic2.jpg", "rb");
    FILE* target = fopen("pakage.dat", "ab");

while (fread(&i, sizeof(char), 1, pic)) {
        i += 2;
        fwrite(&i, sizeof(char), 1, target);

    }
   
    while (fread(&i, sizeof(char), 1, pic2)) {
        i += 2;
        fwrite(&i, sizeof(char), 1, target);

    }



但是这个方法在拆包时候遇到了点问题,无法知道文件大小来拆,下面是我已知文件大小所以才用for loop硬编码进去的

程序代码:

    for (int i = 0; i < 118934; i++) {
        fread(&x, sizeof(char), 1, target);
        x -= 2;
        fwrite(&x, sizeof(char), 1, pic);
    }

    for (int i = 0; i < 117097; i++) {
        fread(&x, sizeof(char), 1, target);
        x -= 2;
        fwrite(&x, sizeof(char), 1, pic2);
    }


请问还有什么更好的解决方法吗?或者如果我的思路错了请告知,感谢大佬
#3
rjsp2020-10-19 15:48
看不懂你想干什么?

变成一个dat或者arc文件
那dat格式是什么,arc格式是什么?
从二楼的代码来看,又没区分什么是dat格式,什么是arc格式。那你为什么要说 dat格式 和 arc格式?
#4
seahdiao2020-10-19 15:52
回复 3楼 rjsp
就想学习拆包游戏文件,所以想从打包文件开始学起
#5
吹水佬2020-10-19 15:55
网上有不少相关资料,搜搜“打包文件程序” 看看,基本的就是加个包头块(存放文件信息)
1