日期:2014-05-20  浏览次数:20842 次

怎么把一个合并文件解压!!!
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来实现

------解决方案--------------------
用Java来做的话
知道起始偏移地址和长度,把相关内容读出来写入一个文件相信对你不是难事。
但里面可能有文件夹,可能还有子文件夹,这样就要用递归了。