【技术实现步骤摘要】
一种压缩和解压方法及装置
[0001]本专利技术涉及计算机
,特别是涉及一种压缩和解压方法及装置。
技术介绍
[0002]目前的解压方法有很多,比如bunzip2、unzip、gunzip、uncompress、tar等,但这些方法在解压后会保留源文件,所以在升级解包过程中会至少需要比源文件大一倍的存储或内存空间,以至于对于那些剩余存储或内存空间比源文件两倍还小的设备将无法解压文件。而且目前的解压方法没有对解压后的文件逐个做完整性校验。
[0003]因此,目前的解压方法需要较大的存储或内存空间,若设备的内存空间小于源文件的两倍,则不能成功解压文件。而且没有对解压后的文件逐个做md5sum或sha256sum校验,无法保证文件内容的完整性。
技术实现思路
[0004]本专利技术提供了一种压缩和解压方法及装置,可以在解压时节省内存,保证解压后文件的完整性。
[0005]为了解决上述技术问题,本专利技术的第一实施例提供了一种压缩方法,包括:
[0006]确定每个待压缩文件的大小; />[0007]将每本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种压缩方法,其特征在于,包括:确定每个待压缩文件的大小;将每个待压缩文件以预设的大小切割成若干个文件块;逐个读取每个待压缩文件的若干个文件块,并将读取到的文件块写入压缩包的文件内容区,生成每个写入文件在文件内容区中所对应的位置偏移信息;待所有待压缩文件的文件块都被写入压缩包的文件内容区后,生成压缩包;其中,所述压缩包按序依次设置有所述文件内容区、文件数量区、文件信息区和文件包信息区;所述文件信息区记录了每个写入文件的类型、版本、名称、md5sum、偏移位置和大小,所述文件包信息区记录了压缩包的文件包版本信息、文件包特性和文件包大小。2.根据权利要求1所述的压缩方法,其特征在于,所述将读取到的文件块写入压缩包的文件内容区,生成每个写入文件在文件内容区中所对应的位置偏移信息,具体为:将每个待压缩文件的文件块写入压缩包的文件内容区,形成若干个写入文件;记录每个写入文件在压缩包的位置,确定每个写入文件的偏移位置;确定每个写入文件的大小为对应的待压缩文件的大小。3.根据权利要求1所述的压缩方法,其特征在于,所述待所有待压缩文件的文件块都被写入压缩包的文件内容区后,具体为:将文件数量写入压缩包的文件数量区,并将每个写入文件的文件信息写入压缩包的文件信息区;计算文件内容区、文件数量区、文件信息区和文件包信息区的大小总和,确定压缩包的文件包大小;读取压缩包的文件包版本信息和文件包特性,并将压缩包的文件包大小、文件包版本信息和文件包特性写入压缩包的文件包信息区。4.根据权利要求3所述的压缩方法,其特征在于,所述将每个写入文件的文件信息写入压缩包的文件信息区,具体为:读取每个写入文件的类型、版本和名称;利用MD5算法获取每个写入文件的md5sum;根据每个写入文件的位置偏移信息,获取每个写入文件的偏移位置和大小;根据每个写入文件的类型、版本、名称、md5sum、偏移位置和大小,生成每个写入文件的文件信息;获取所有写入文件的文件信息,将每个写入文件的文件信息写入压缩包的文件信息区。5.根据权利要求1所述的压缩方法,其特征在于,所述将每个待压缩文件以预设的大小切割成若干个文件块,具体为:按预设的大小从每个文件的末尾向前依次切割,形成若干个文件块,并将所述若干个文件块做加密处理。6.一种解压方法,其特征在于,包括:获取待解压的第一压缩包;其中,所述第一压缩包按序依次设置有文件内容区、文件数量区、文件信息区和文件包信息区;所述文件信息区记录了每个待解压文件的类型、版本、名称、md5sum、偏移位置和大小,所述文件包信息区记录了第一压缩包的文件包版本信息、
文件包特性和文件包大小;截取第一压缩包的文件数量区、文件信息区和文件包信息区,并将所述文件数量区、文件信息区和文件包信息区保存至内存中;在第一压缩包的文件信息区读取每个待解压文件的大小和偏移位置;根据所述每...
【专利技术属性】
技术研发人员:皮晓聪,李柱栋,
申请(专利权)人:广州通则康威智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。