您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > CryPak文件档案系统
CryPak文件档案系统CryPak是一个模块,可以存储游戏内容文件,并可以压缩和解压缩。特点与标准压缩格式兼容(执行是基于Zlib库)支持以标准文件系统之外的存储文件存档数据可以同步读取(直接加载数据存档)和异步(流)通过IStreamCallback方式加载(最大4GB偏移,4GB大小的文件)文件可以存储为压缩或解压缩形式未压缩文件可以按需求读取部分文件名比较不区分大小写(内部一切都转换为小写)支持加载Zip/Pak文件,最大4GB(事实证明过的是超过2.1GB)Unicode和绝对路径处理内部所有路径处理代码都是基于ASCII没有Unicode功能。这是为了节省内存和使用简单。没有对Unicode作为游戏的实际需要可以以ASCII路径进行开发如果没有这项规则的话,在制作其他国家版本的时候可能会出现问题。应避免用户如果以Unicode字符集作为游戏安装目录或文件夹。分层通常游戏数据内哦那个被组织在游戏安装目录下的一些Pak文件里。如果一个文件要求打开擦做。CryPak系统会通过循环查找所有注册的Pak文件来找到此文件。这也可能混合直接存储到文件系统里的一些松散文件(没有放入Pak文件中)。如果一个文件作为松散的文件存在在Pak文档中,松散的文件会被作为开发模式下游戏的首选。然而为了避免游戏中的作弊,如果游戏不是在开发模式下,存储到Pak文件中的文件会比它作为松散文件时更优先。斜杠通常使用前斜杠作为引擎的内部处理,但用户可以在输入路径中包含反斜杠。特殊文件夹的处理路径别名%user%可用于相对于用户文件夹的指定路径。这可能需要存储用户的特定数据。Window对用户限制在其中存储文件。例如程序文件夹可能不可写,由于这个原因,屏幕截图,保存游戏的数据还有其他文件可能会被存储到用户文件夹下。一下是有效路径的例子。无法找到源代码格式的语言:文本。可用语言是Actionscript,html,java,javascript,none,sql,xthml,xml。%user%ProfilesSingle/lisa.datGame/Fred.dat内部的这里有一个已知的执行缺陷,当每个目录超过1000个文件左右时会导致问题。格式化属性:Zip文件格式每个文件头存储了它的路径和文件名以非压缩文本格式。为了更快的文件访问,有一个目录在文件结尾。该目录以未压缩文本形式保存路径和文件名(冗余)扩充阅读Contributor:PHILKATZSystemofOrigin:IBMOriginalauthor:PhilKatzFILEFORMAT-----------Filesstoredinarbitraryorder.Largezipfilescanspanmultiplediskettemedia.LocalFileHeader1file1extrafieldfile1commentfiledata1LocalFileHeader2file2extrafieldfile2commentfiledata2...LocalFileHeadernfilenextrafieldfilencommentfiledatanCentralDirectorycentralextrafieldcentralcommentEndofCentralDirectoryendcommentEOFLOCALFILEHEADER-----------------OFFSETLABELTYPVALUEDESCRIPTION------------------------------------------------------------------00ZIPLOCSIGHEX04034B50;LocalFileHeaderSignature04ZIPVERDW0000;Versionneededtoextract06ZIPGENFLGDW0000;Generalpurposebitflag08ZIPMTHDDW0000;Compressionmethod0AZIPTIMEDW0000;Lastmodfiletime(MS-DOS)0CZIPDATEDW0000;Lastmodfiledate(MS-DOS)0EZIPCRCHEX00000000;CRC-3212ZIPSIZEHEX00000000;Compressedsize16ZIPUNCMPHEX00000000;Uncompressedsize1AZIPFNLNDW0000;Filenamelength1CZIPXTRALNDW0000;Extrafieldlength1EZIPNAMEDSZIPFNLN;filename--ZIPXTRADSZIPXTRALN;extrafieldCENTRALDIRECTORYSTRUCTURE---------------------------OFFSETLABELTYPVALUEDESCRIPTION------------------------------------------------------------------00ZIPCENSIGHEX02014B50;Centralfileheadersignature04ZIPCVERDB00;Versionmadeby05ZIPCOSDB00;Hostoperatingsystem06ZIPCVXTDB00;Versionneededtoextract07ZIPCEXOSDB00;O/Sofversionneededforextraction08ZIPCFLGDW0000;Generalpurposebitflag0AZIPCMTHDDW0000;Compressionmethod0CZIPCTIMDW0000;Lastmodfiletime(MS-DOS)0EZIPCDATDW0000;Lastmodfiledate(MS-DOS)10ZIPCCRCHEX00000000;CRC-3214ZIPCSIZHEX00000000;Compressedsize18ZIPCUNCHEX00000000;Uncompressedsize1CZIPCFNLDW0000;Filenamelength1EZIPCXTLDW0000;Extrafieldlength20ZIPCCMLDW0000;Filecommentlength22ZIPDSKDW0000;Disknumberstart24ZIPINTDW0000;InternalfileattributesLABELBITDESCRIPTION-------------------------------------------------------------ZIPINT0if=1,fileisapparentlyanASCIIortextfile0if=0,fileapparentlycontainsbinarydata1-7unusedinversion1.0.26ZIPEXTHEX00000000;Externalfileattributes,host;systemdependent2AZIPOFSTHEX00000000;Relativeoffsetoflocalheader;fromthestartofthefirstdisk;onwhichthisfileappears2EZIPCFNDSZIPCFNL;Filenameorpath-shouldnot;containadriveordeviceletter,;oraleadingslash.Allslashes;shouldbeforwardslashes'/'--ZIPCXTRDSZIPCXTL;extrafield--ZIPCOMDSZIPCCML;filecommentENDOFCENTRALDIRSTRUCTURE----------------------------OFFSETLABELTYPVALUEDESCRIPTION------------------------------------------------------------------00ZIPESIGHEX06064B50;Endofcentraldirsignature04ZIPEDSKDW0000;Numberofthisdisk06ZIPECENDW0000;Numberofdiskwithstartcentraldir08ZIPENUMDW0000;Totalnumberofentriesincentraldir;onthisdisk0AZIPECENNDW0000;totalnumberentriesincentraldir0CZIPECSZHEX00000000;Sizeofthecentraldirectory10ZIPEOFSTHEX00000000;Offsetofstartofcentraldirectory;withrespecttothestartingdisk;number14ZIPECOMLDW0000;zipfilecommentlength16ZIPECOMDSZIPECOML;zipfilecommentZIPVALUESLEGEND-----------------HOSTO/SVALUEDESCRIPTIONVALUEDESCRIPTION------------------------------------------------------------0MS-DOSandOS/2(FAT)5AtariST1Amiga6OS/21.2extendedfilesys2VMS7Macintosh3*nix8thru4VM/CMS255unusedGENERALPURPOSEBITFLAGLABELBITDESCRIPTION-------------------------------------------------------------ZIPGENFLG0Ifset,fileisencryptedor1IffileImplodedandthisbitisset,8KZIPCFLGslidingdictionarywasused.Ifclear,4Kslidingdictionarywasused.2IffileImplodedandthisbitisset,3Shannon-Fanotreeswereused.Ifclear,2Shannon-Fanotreeswereused.3-4unused5-7usedinternalybyZIPNote:Bits1and2areundefinedifthecompressionmethodisotherthantype6(Imploding).COMPRESSIONMETHODNAMEMETHODDESCRIPTION-------------------------------------------------------------Stored0NocompressionusedShrunk1LZW,8Kbuffer,9-13bitswithpartialclearingReduced-12Probalisticcompression,L(X)=lower7bitsReduced-23Probalisticcompression,L(X)=lower6bitsReduced-34Probalisticcompression,L(X)=lower5bitsReduced-45Probalisticcompression,L(X)=lower4bitsImploded62Shanno-Fanotrees,4KslidingdictionaryImploded73Shanno-Fanotrees,4KslidingdictionaryImploded82Shanno-Fanotrees,8Kslidingdiction
本文标题:CryPak文件档案系统
链接地址:https://www.777doc.com/doc-870248 .html