您好,欢迎访问三七文档
当前位置:首页 > 医学/心理学 > 医学现状与发展 > 基于魔兽哈希算法的Ogre资源文件扩展的设计与实现
基于魔兽哈希算法的Ogre资源文件扩展的设计与实现一、功能需求1、需要实现的功能:(1)、创建、打开和关闭资源包。(2)、压缩资源包。消除数据添加、修改和删除带来的数据碎片,扩展索引表容量,重设资源包密钥。(3)、合并资源包。将外部的资源包整合进当前打开的资源包。(4)、释放资源文件。将资源包内的任意文件释放到磁盘。(5)、创建文件夹。(6)、(批量)添加文件。可以指定文件的独立密钥与压缩选项。(7)、从文件夹添加数据(包括文件夹与文件)。可以指定文件的独立密钥与压缩选项。(8)、(批量)更新文件。可以选择按列表顺序与按文件名两种方式进行数据更新。(9)、(批量)复制、剪切、粘贴、删除和重命名单元。(10)、查看和修改资源属性。(11)、文件生成格式为.pkg格式(12)、资源管理程序新增需求ogre资源管理适配器,ogre本身有抽象的文件夹和文件流接口:zip文件和第三方自定义文件。实现这些接口可以让ogre使用第三方资源管理器,即我们现在做的这套。2、性能需求:压缩算法选择:压缩率高。加密算法选择:机密性好。同时在时间上有一定Deadline.3、界面要求:直观,大方,美观。本软件在UI设计方面采用的是wxWidgets库,由于本库在跨平台方面做的已经比较成熟,可以满足软件移植的需要,而且它对常用的控件进行了封装,因而在设计的过程中可以减少界面设计的开销,可以把精力放在重点算法的实现上。本部分给出整个窗体的界面元素及其相关说明。●采用的wxWidgets图形用户界面(GUl)标准,感官上稍异于传统windows界面显示效果;GeneratedbyFoxitPDFCreator©FoxitSoftware●屏幕布局采用wxWidgets中的布局控件进行,尽量满足多分辨率的显示问题;●使用在图形用户界面上的软件组件,包括:Ø菜单:wxMenuØ工具栏:wxToolBarØ标准按钮:wxButtonØ树形控件:wxTreeCtrlØ文件列表控件:wxListCtrlØ文本显示框:wxTextCtrlØ状态栏:wxStatusBar●快捷键:(参照菜单项)●各种显示格式的规定,包括:Ø不同情况下文字的对齐方式;Ø不同情况下数字的表现格式与对齐方式Ø程序和文件的编码方式采用Unicode编码●错误信息显示标准;1、菜单文件(E)-------新建(N)Ctrl+N|----打开(O)Ctrl+O|----重新打开(R)|----关闭(O)|----历史记录----…|——————————|----信息(I)|——————————|----退出(Q)Alt+QGeneratedbyFoxitPDFCreator©FoxitSoftware查看(V)-------ü工具栏(T)|----ü预览(P)|——————————|----®大图标(G)|----®小图标(M)|----®列表(L)|----®详细资料(D)操作(E)-------打开(O)|----打开方式…(W)|——————————|----解压缩(E)Ctrl+E|----重命名(R)F2|----删除(D)Delete|——————————|----属性(P)|——————————|----新建文件夹(N)|----添加文件(A)|----添加文件夹(T)|——————————|----选择列表文件(L)|----全部解压(X)|----重新压缩(C)选项(P)-------文件类型选项(O)F6|----语言------------®EnglishGeneratedbyFoxitPDFCreator©FoxitSoftware|----®Chinese|----®Russian帮助(H)-------关于(A)2、工具栏BTN_新建BTN_打开——————BTN_信息——————BTN_——————BTN_加压缩BTN_删除——————BTN_添加文件BTN_添加文件夹——————BTN_大图标BTN_小图标BTN_列表BTN_详细资料——————LIST_查找3、主界面左:wxTreeCtrlGeneratedbyFoxitPDFCreator©FoxitSoftware右:wxListCtrl下:wxTextCtrl底:wxStatusBar4、列表框右键菜单|----打开(O)|----打开方式…(W)|——————————|----解压缩(E)|----重命名(R)|----删除(D)|——————————|----属性(P)|——————————|----新建文件夹(N)|----添加文件(A)|----添加文件夹(T)4、可以扩展的功能:加密算法的可选择性、PKG文件的压缩5、本系统目前还没有完成的功能如下:(1).加密算法及其加密算法的可选择性(2).PKG文件的压缩二、程序系统结构设计1.整体逻辑框图GeneratedbyFoxitPDFCreator©FoxitSoftware目录树逻辑结构图三、算法设计1、文件添加流程2、文件删除操作流程3、PKG文件的创建及其PKG文件的读取流程4、文件修改流程【暂时没有加入】5、文件释放流程GeneratedbyFoxitPDFCreator©FoxitSoftware、文件/文件夹重命名流程四、接口设计1、PKG包操作CreatePKG[创建PKG文件]函数声明:boolCreatePKG(char*sFilePath,longnTableSize);函数说明:新建一个空的PKG文件。返回值:bool,true表示成功,false表示失败。参数列表:sFilePath[String],保存PKG文件的路径。nTableSize[DWord],新建PKG文件的索引表大小。OpenPKG[打开PKG文件]函数声明:boolOpenPKG(char*sFilePath);函数说明:打开一个存在的PKG文件。返回值:GeneratedbyFoxitPDFCreator©FoxitSoftware,true表示成功,false表示失败。参数列表:sFilePath[String],PKG文件的路径。ClosePKG[关闭PKG文件]函数声明:boolClosePKG();函数说明:关闭PKG文件,并做出相应的收尾工作。返回值:bool,true表示成功,false表示失败。GetFileNum[取得PKG包中文件个数]函数声明:longGetFileNum();函数说明:[long],取得当前打开PKG文件中的文件个数。返回值:long:PKG文件中的文件个数。GeneratedbyFoxitPDFCreator©FoxitSoftware[取得索引表的大小]函数声明:longGetTableSize();函数说明:取得指定文件的大小。返回值:[long],取得PKG头部索引表大小。返回值:long:PKG文件中的索引表的大小。GetTableOffset[取得索引表偏移]函数声明:longGetTableOffset();函数说明:取得PKG文件中索引表的偏移量。返回值:long,索引表偏移量。GetPKGVersion[获取PKG文件版本号]函数声明:GeneratedbyFoxitPDFCreator©FoxitSoftware();函数说明:取得PKG文件的版本号。返回值:[long],取得PKG文件版本号。2、PKG内部文件操作AddFileR[向PKG文件中添加文件]函数声明:boolddFileR(char*strFileName,char*strRelName);函数说明:将一个文件添加到已经打开的PKG中。返回值:bool,成功:True;失败:false.参数列表:strFileName[String],需要加入文件的路径。strRelName[String],加入到PKG文件中的相对路径。DelFile[删除PKG文件中指定的文件]GeneratedbyFoxitPDFCreator©FoxitSoftware函数声明:boolDelFile(char*sFileName);函数说明:按照指定的文件名将此文件删除。返回值:bool,true表示成功,false表示失败。参数列表:sFileName[String],文件名DelFolder[删除PKG文件中指定的文件夹]函数声明:boolDelFolder(char*dirPath);函数说明:删除PKG文件中相对路径中的目录。返回值:bool,true表示成功,false表示失败。参数列表:dirPath[String],PKG相对路径名AddFolderR[添加文件夹]GeneratedbyFoxitPDFCreator©FoxitSoftware函数声明:VoidAddFolderR(char*szFolderPath,char*strRelName);函数说明:向PKG相对路径中,递归添加目录。返回值:参数列表:szFolderPath[String]要添加的目录路径。strRelName[String]添加到的路径。GetFileLen[取得文件大小]函数声明:longGetFileLen(stringsFileName);函数说明:取得指定文件的大小。返回值:[long],取得指定文件名的文件大小。参数列表:sFileName[String],指定的文件名。GeneratedbyFoxitPDFCreator©FoxitSoftware[取得文件偏移量]函数声明:longGetFileOffset(StringsFileName);函数说明:取得已打开的PKG内指定序号文件的地址偏移,可使用此地址偏移直接取得数据。返回值:long,偏移地址参数列表:sFileName[String],指定的文件名。ReleaseFile[释放文件]函数声明:boolReleaseFile(char*sSrcFileName,char*sDesDir);boolReleaseFile(unsignedlongdwIndex,char*sDesDir);函数说明:将包中指定文件释放到硬盘。返回值:bool,true表示成功,false表示失败。参数列表:sSrcFileNameGeneratedbyFoxitPDFCreator©FoxitSoftware[String],PKG中指定的文件名。sDe
本文标题:基于魔兽哈希算法的Ogre资源文件扩展的设计与实现
链接地址:https://www.777doc.com/doc-5924683 .html