关于资源包存储资源路径名的方案

资源包中一般不会直接存储资源文件的路径名,而是对路径名做Hash,存储其Hash-id(为了避免Hash冲突,最好做两次Hash,用两个Hash唯一标记一个资源文件)。

这样不但查询速度更快,而且避免了资源文件路径名变长造成的文件记录结构(Entry)长度不统一的问题。

不过如果有存储资源文件路径名的需求的话,其实也可以另辟蹊径,实现记录资源文件路径名,而且不会影响资源包文件条目(Entry)记录结构。

具体做法:

取hash-id为0的作为系统占用id,此hash-id用于存储一个系统文件SystemFile(此文件作用就是记录所有的资源路径名)。

此文件记录所有加入到资源包的文件路径,然后资源包中的资源文件条目(Entry)单独记录其文件路径名在系统文件(SystemFile)中的偏移量和长度即可。

最后此系统文件像其他文件一样添加到资源包中即可,记住其hash-id是0。

此方式添加对路径名的记录,对资源包改动不大。

posted @ 2015-04-01 22:15  luweimy  阅读(249)  评论(0编辑  收藏  举报