结构:
DIR是一个目录文件,用于记录文件名、文件大小、文件在IMG中的位置。
而IMG则是一个用于储存文件的归档
DIR结构详解:
他是一个32字节(b)为一组的目录文件
每一组都记录了一个文件的文件名、文件大小、文件在IMG中的位置
按照:
4字节-记录偏移
4字节-记录大小
24字节-记录文件名,这正好解释了为什么IMG中的文件的文件名长度不能超过24字节
但是这里有必要说明一下,为什么短短的4字节就能储存偏移和大小的信息?
因为偏移和大小都是按2KB(2*1024字节)记录的,也就是说大小和偏移在记录的时候除以了一次2048B
我们取出偏移和大小后要*2048B才能还原它的大小和偏移
那么如何计算出文件个数?
刚才说了,DIR以32字节为一组记录文件
那么只需要取出DIR的文件长度(先用open(),再用lof()即可),再除以32字节即可还原出文件的个数
那么如何取出文件?(也就是导入导出的详细用法)
先取出文件偏移,再取出文件长度,接着从IMG中,从偏移位置开始,读出文件长度的长度,即可导出文件
重命名直接重新刷写记录即可
附上MODDING的讲解:
Entry: (repeated n times)
4 byte - DWORD - offset of file inside archive (in blocks)
4 byte - DWORD - size of file (in blocks)
24 byte - CHAR[24] - name of file
DIR是一个目录文件,用于记录文件名、文件大小、文件在IMG中的位置。
而IMG则是一个用于储存文件的归档
DIR结构详解:
他是一个32字节(b)为一组的目录文件
每一组都记录了一个文件的文件名、文件大小、文件在IMG中的位置
按照:
4字节-记录偏移
4字节-记录大小
24字节-记录文件名,这正好解释了为什么IMG中的文件的文件名长度不能超过24字节
但是这里有必要说明一下,为什么短短的4字节就能储存偏移和大小的信息?
因为偏移和大小都是按2KB(2*1024字节)记录的,也就是说大小和偏移在记录的时候除以了一次2048B
我们取出偏移和大小后要*2048B才能还原它的大小和偏移
那么如何计算出文件个数?
刚才说了,DIR以32字节为一组记录文件
那么只需要取出DIR的文件长度(先用open(),再用lof()即可),再除以32字节即可还原出文件的个数
那么如何取出文件?(也就是导入导出的详细用法)
先取出文件偏移,再取出文件长度,接着从IMG中,从偏移位置开始,读出文件长度的长度,即可导出文件
重命名直接重新刷写记录即可
附上MODDING的讲解:
Entry: (repeated n times)
4 byte - DWORD - offset of file inside archive (in blocks)
4 byte - DWORD - size of file (in blocks)
24 byte - CHAR[24] - name of file