mfiles的文件结构如下:
首先mfiles文件头,头结构共13个字节
typedef struct _zjTarFileHeadInfo
{
unsigned long nHeader; /* 头标识,为0xA0B0C0D0 */
unsigned char cVersion;
unsigned long nFileInfoChunkLength; /* 子文件信息的总长度 */
unsigned long nFileNumber; /* 子文件个数 */
}zjTarFileHeadInfo;
下面是mfiles包含的子文件信息,多个子文件的信息依次列出,子文件信息的总长度由mfiles文件头当中的nFileInfoChunkLength决定。
typedef struct _zjTarSubFileInfo
{
unsigned long nNameLength; /* 子文件名长*/
char szName[]; /* 子文件名,包含相对路径 */
unsigned long nOffset; /* 当前文件的偏移量,从第一个文件数据起始位置开始计算*/
unsigned long nFileLength; /* 文件长度*/
}zjTarSubFileInfo;
然后是子文件数据。
比如abc.mfiles里面有6个文件夹。每天文件夹里面有文本或图片,现在想把它解压成这样的文件怎么做?用Java的IO来实现