发明名称 |
一种基于哈希的文件打包和读取方法 |
摘要 |
本发明公开了一种基于哈希的文件打包和读取方法。该打包方法步骤:依次读取所需打包的文件;计算上述文件路径的哈希值;将文件写入文件数据区;将哈希值与文件的偏移值写入哈希表;完成所有文件的写入操作。该读取方法步骤:通过读入的文件索引信息获取包内文件路径的哈希值;在哈希表中查找对应的偏移值;在文件数据区读取偏移值对应的数据文件。本发明中包内文件标识采用哈希值,查找过程中无需进行字串匹配;索引上采用哈希表,可快速定位偏移地址;并且无法通过包文件还原原始目录结构。本发明作为一种基于哈希的文件打包和读取方法可广泛应用于计算机软件领域。 |
申请公布号 |
CN102880677B |
申请公布日期 |
2016.04.13 |
申请号 |
CN201210333907.0 |
申请日期 |
2012.09.11 |
申请人 |
珠海金山网络游戏科技有限公司;成都西山居互动娱乐科技有限公司 |
发明人 |
陈飞舟;吴才忠;刘畅 |
分类号 |
G06F17/30(2006.01)I |
主分类号 |
G06F17/30(2006.01)I |
代理机构 |
广州嘉权专利商标事务所有限公司 44205 |
代理人 |
陈国荣 |
主权项 |
一种基于哈希的文件打包方法,其特征在于:该打包方法包括以下步骤:A、依次读取所需打包的文件;B、计算上述文件路径的哈希值;C、将上述文件写入包文件中的文件数据区,所述包文件中不保存包内文件的路径信息、目录结构或文件名;D、将文件路径的哈希值与文件的偏移值写入包文件中的哈希表;当所有文件都已经写入文件数据区且所有哈希值都不相同时候,则此时将哈希值作为哈希表的关键码;E、判断是否读取完所有需打包的文件,若否,则继续执行步骤A,若是,则结束文件的打包;所述步骤B包括以下子步骤:B1、计算文件路径哈希值;B2、判断是否哈希冲突;B3、若不存在哈希冲突,则继续执行步骤C;若存在哈希冲突,则改换文件路径名称后,回到步骤B1重新执行。 |
地址 |
519000 广东省珠海市吉大景山路莲山巷8号金山软件大厦 |