- 1、本文档共44页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文件打包技术详解-第一讲要点
《文件打包技术详解》
第一讲:打包与解包的价值与意义
主讲人:步磊峰 UIPower 3D界面引擎负责人
第一节:打包的相关概念
打包的定义
什么是打包?打包这个词很形象,就是把零碎的文件进行统一重封装,统一管理,比如我们常见的
RAR文件,ZIP文件都是很常见的包裹格式
2
第一节:打包的相关概念
打包的意义
比如RAR包,我们虽然能有工具解压,但是我们却基本上没有相关的SDK来做二次开发
ZIP包虽然有SDK来读取,但是对于通用的文件格式,我们无法做到保护资源的需求
如果只是为了文件管理的方便,无所谓别人解开资源的话,直接用现成的ZIP开发的SDK即可
3
第一节:打包的相关概念
打包的方式
分类打包
比如图片资源打一个包,声音资源打一个包
全部打包
把所有资源一起打包
4
第一节:打包的相关概念
打包的一般准则和规范
原始文件的标识,这个标识可以使原始文件名+路径名,或者也可以是转换后的数据如ID等,先从最简单的说
起,使用原始文件名+路径名
2. 原始文件的大小,把文件打进包裹之后,我们要知道这个原始文件有多大
3. 原始文件的数据打包在包裹的什么位置
5
第二节:向导生成控制台Package1程序
打开VS2008相关编辑器
选择项目win32类型
选择Win32控制台应用程序
选择控制台应用程序
点击完成按钮
6
第三节:Package1打包程序的实现
1、包裹文件的定义
2、添加CreatPackage(创建空白包裹)函数、AddFileToPackage(添加一个文件到包裹)函数
3、CreatePackage(创建空白包裹)函数的实现
4、AddFileToPackage(添加一个文件到包裹)函数的实现
5、测试所编写的打包程序
6、运行结果显示
7
第三节:Package1打包程序的实现
包裹文件的定义
我们在Package.h加入最简单的包裹文件定义:
8
第三节:Package1打包程序的实现
1、包裹文件的定义
2、添加CreatPackage(创建空白包裹)函数、AddFileToPackage(添加一个文件到包裹)函数
3、CreatePackage(创建空白包裹)函数的实现
4、AddFileToPackage(添加一个文件到包裹)函数的实现
5、测试所编写的打包程序
6、运行结果显示
9
第三节:Package1打包程序的实现
添加CreatPackage函数、AddFileToPackage函数
10
第三节:Package1打包程序的实现
1、包裹文件的定义
2、添加CreatPackage(创建空白包裹)函数、AddFileToPackage(添加一个文件到包裹)函数
3、CreatePackage(创建空白包裹)函数的实现
4、AddFileToPackage(添加一个文件到包裹)函数的实现
5、测试所编写的打包程序
6、运行结果显示
第三节:Package1打包程序的实现
CreatePackage函数的实现
创建空白包裹
第三节:Package1打包程序的实现
1、包裹文件的定义
2、添加CreatPackage(创建空白包裹)函数、AddFileToPackage(添加一个文件到包裹)函数
3、CreatePackage(创建空白包裹)函数的实现
4、AddFileToPackage(添加一个文件到包裹)函数的实现
5、测试所编写的打包程序
6、运行结果显示
第三节:Package1打包程序的实现
AddFileToPackage函数的实现
添加一个文件到包裹
bool CPackage::AddFileToPackage( const char*szFileName )
{
//演示方便,我们不做任何重复性重名判断
//打开目标文件
FILE*fp = fopen( szFileName, rb );
if( !fp )
{
printf( 打开文件%s失败\n, szFileName );
return false;
}
//我们先得到下这个文件大小
fseek( fp, 0, SEEK_END );
int FileSize = ftell( fp );
fseek( fp, 0, SEEK_SET );
第三节:Package1打包程序的实现
AddFileToPackage函数的实现
添加一个文件到包裹
//构建包裹数据
PackageItem Item;
strncpy( Item.FileName, szFileName, sizeof( Item.FileName ) - 1 );
Item.FileSize = FileSize;
Item.Offse
您可能关注的文档
最近下载
- 期末默写、文言基础复习 统编版高中语文必修上册.docx VIP
- 对水果产业发展的调研报告.pdf
- 海水提取氯化钾项目节能评估报告.docx VIP
- 【一诊】绵阳市高三2022级(2025届)第一次诊断性考试数学试卷(含答案逐题解析).docx
- 2023-2024学年天津市河北区八年级第一学期期中数学试卷及参考答案完整版.pdf VIP
- 海水提取氯化钾项目节能分析报告.docx VIP
- 地基承载力标准值、特征值、允许值辨析.pdf
- 山东省烟台市2023至2024学年高二上学期期中考试化学试题附参考答案(解析).docx
- 利用PDCA降低乳腺癌改良根治术后患肢功能障碍发生率【24页】.pptx
- 高中英语课件:The Face-down Generation.pptx
文档评论(0)