【云解压】ZIP 文件格式分析-偏移计算和文件大小表示ZIP32 ZIP64
2017-02-21 17:44
453 查看
ZIP协议4个字节无符号数表示文件大小、偏移位等,最大值是4G,超过4G的文件,使用ZIP64协议;
采用long型来表示这些值
一、无符号数表示的方法:
* 4byte字节转为无符号LONG
* 算法:
* 1.unsignLongValue = sign4bytelongvalue & IntegerMaxValue
* 2.unsignLongValue = unsignLongValue|0x80000000L;
二、这里提供一个直接计算CDIR Range的方法:
CDIR偏移位计算算法:
1.注意不采用无符号小于2G 不会溢出
CDIRStartIndex = CDIRStartIndex(unsign);
2.或者直接计算
CDIRStartIndex = FileSize - CDIRSize - ECDIRSize;
三、ECDIRSize计算:
解析:
ECDIRSize = ECDIRFIXSize(22) + CommentLength;
直接计算方法:
ECDIRSize = ReadEndMaxSize - CheckSigIndex;
采用long型来表示这些值
一、无符号数表示的方法:
* 4byte字节转为无符号LONG
* 算法:
* 1.unsignLongValue = sign4bytelongvalue & IntegerMaxValue
* 2.unsignLongValue = unsignLongValue|0x80000000L;
二、这里提供一个直接计算CDIR Range的方法:
CDIR偏移位计算算法:
1.注意不采用无符号小于2G 不会溢出
CDIRStartIndex = CDIRStartIndex(unsign);
2.或者直接计算
CDIRStartIndex = FileSize - CDIRSize - ECDIRSize;
三、ECDIRSize计算:
解析:
ECDIRSize = ECDIRFIXSize(22) + CommentLength;
直接计算方法:
ECDIRSize = ReadEndMaxSize - CheckSigIndex;
相关文章推荐
- JAVA读取zip文件 JAVA读取压缩文件 解压zip里面的指定格式文件
- 图片格式及文件大小计算
- linux下解压zip压缩格式文件(转载)
- [置顶] 使用Python3解压gz、tar、tgz、zip、rar五种格式的压缩文件例子
- zip和rar格式的文件的解压
- Ubuntu下如何解压.zip和.rar格式的压缩文件
- PE文件和COFF文件格式分析——RVA和RA相互计算
- zip 文件格式分析: 附实例介绍
- FIle 文件操作,包括文件的复制、删除以及zip和rar格式的解压操作
- zip, tar, tar.gz, tar.bz2, jar,7z等格式文件的压缩和解压方法
- MP3格式分析 计算CBR和VBR的MP3文件的播放时间的步骤
- Python读取某个目录下的zip压缩包解压开后计算每个小文件的md5值,并将压缩包名字、里面小文件名字、以及对应的md5值写入csv文件
- linux ftell函数(用于得到文件位置指针当前位置相对于文件首的偏移字节数)计算文件的字节大小
- 导入文件的三种方式及分析web服务日志计算元素字节大小案例
- ZIP文件格式分析
- 使用Python3解压gz、tar、tgz、zip、rar五种格式的压缩文件例子
- zip, tar, tar.gz, tar.bz2, jar,7z等格式文件的压缩和解压方法
- win7系统zip格式文件怎么解压出来而不是直接提取出来
- zip文件格式分析
- php用PclZip类压缩和解压文件(格式为ZIP)