专利名称:一种文件打包方法及工具的制作方法
技术领域:
本发明涉及计算机应用领域,特别涉及一种文件打包方法及工具。
背景技术:
将多个文件打包成一个文件,可适用于多种应用环境,比如 1.缺少的文件系统接口,但又需要访问多个文件 这种情况下,可以将打包后的文件,即单一的数据流,视作一个简易的文件系统。
2.资源性文件 例如,应用程序需要一组文件,包含网页及图片,用作界面显示。此时可以预先打包成一个文件,然后将数据流预先存放到设备中。应用程序在使用时,通过解包技术,读取到原始的多文件的文件内容。这种情况相当于主动放弃文件系统接口,可以简化流程,提高兼容性。
3.需要利用网络传输多个文件 将多个文件打包成一个文件,再进行传输,有利于简化传输流程、减少传输次数、提高传输效率。
目前,有多种文件打包技术,而在实施本发明过程中,发明人发现现有技术中至少存在如下问题,在文件打包过程中,对被打包文件的格式、内容,尤其是文件名长度等有很多限制,不能灵活的应用在不同的应用环境中,满足其多种不同的需求,以致大大限制了文件打包技术的推广和发展。
发明内容
本发明提供一种文件打包方法及工具,以解决现有文件打包技术中对被打包文件的格式、内容,尤其是文件名长度等的限制,导致不能灵活应用的问题。
本发明实施例提供了一种文件打包方法,预先创建包括待打包文件路径信息的文件列表,所述方法包括 遍历所述文件列表获取待打包文件名称总长度及文件总数,输出包括待打包文件总数的控制区; 根据所述待打包文件路径信息、文件名称总长度和文件总数,计算并输出包括各待打包文件长度及数据偏移量的信息区,并输出包括各待打包文件数据内容的数据区; 按照所述控制区、信息区和数据区排列顺序进行封装。
所述输出包括待打包文件总数的控制区具体为 输出预设标识值,所述标识值用于标识是由所述文件打包方法打包生成; 输出第一保留值,所述第一保留值用于版本升级和/或格式扩充; 输出版本号; 获取当前系统时间,输出所述当前系统时间; 输出所述文件总数; 输出第二保留值,所述第二保留值用于版本升级和/或格式扩充; 输出结束符,所述结束符用于标识所述控制区结束。
所述根据所述待打包文件路径信息、文件名称总长度和文件总数,计算并输出包括各待打包文件长度及数据偏移量的信息区具体为,对所述文件列表中的各待打包文件依次执行如下子步骤 由当前待打包文件路径信息获取文件名称; 计算所述文件名称获取文件名称长度,并输出所述文件名称长度; 计算并输出当前待打包文件的数据偏移量; 打开当前待打包文件,计算并输出当前待打包文件长度和校验值; 输出所述文件名称。
所述计算当前待打包文件数据偏移量具体为∶ 将所述待打包文件名称总长度,与所述文件列表中位于当前待打包文件之前的各待打包文件的数据内容总长度相加,得到当前待打包文件自所述信息区开始的偏移量;所述信息区起始位置值由所述控制区总长度确定。
所述计算当前待打包文件数据偏移量具体为 所述文件列表中位于当前待打包文件之前的各待打包文件的数据内容总长度,作为当前待打包文件自所述数据区开始的数据偏移量;所述数据区起始位置值由所述控制区和信息区总长度确定,所述信息区总长度决定于所述待打包文件名称总长度。
所述输出包括各待打包文件数据内容的数据区具体为,对所述文件列表中的各待打包文件依次执行如下子步骤 打开当前待打包文件; 读取并输出当前待打包文件的数据内容。
所述打开当前待打包文件具体为 由所述文件列表目录名和所述文件路径信息计算待打包文件路径; 依据所述待打包文件路径打开当前待打包文件。
所述文件路径信息为相对所述文件列表目录名的相对路径信息,所述待打包文件路径为由所述文件列表目录名和所述文件路径信息组成; 所述文件路径信息为绝对路径信息,所述待打包文件路径为所述文件路径信息。
所述预先创建包括待打包文件路径信息的文件列表具体为 在当前文件打包工作目录中创建包括待打包文件路径信息的文件列表;或 在当前文件打包工作目录外的其它目录中创建包括待打包文件路径信息的文件列表。
本发明实施例还提供了一种文件打包工具,包括 文件列表创建模块,用于创建包括待打包文件路径信息的文件列表; 控制区输出模块,用于遍历所述文件列表获取待打包文件名称总长度及文件总数,输出包括待打包文件总数的控制区; 信息区输出模块,用于根据所述待打包文件路径信息、文件名称总长度和文件总数,计算并输出包括各待打包文件长度及数据偏移量的信息区; 数据区输出模块,用于输出包括各待打包文件数据内容的数据区; 封装模块,用于按照所述控制区、信息区和数据区排列顺序进行封装。
本发明实施例公开的文件打包方法及工具,提供了一种独有的打包格式,其并不关心被打包文件的格式、内容、文件名长度等信息,在文件列表中的各待打包文件都视作地位同等的数据流,从而,彻底解决了现有文件打包技术中对被打包文件的格式、内容,尤其是文件名长度等的限制,能够灵活的应用于更多的应用场合中。
另一方面,本发明实施例将文件打包为控制区、信息区和数据区三个部分,由于在使用文件系统时,通常对文件数据的使用频率低于文件信息的使用频率,而文件数据相对于文件信息要庞大很多,本发明实施例提供的打包格式中,将信息区和数据区独立开,并将信息区置于数据区之前,有利于在使用文件时加快读取文件信息的操作,进一步提高了整体效率。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的文件打包方法流程图; 图2为本发明实施例二提供的文件打包方法流程图; 图3为本发明实施例二中输出控制区方法流程图; 图4为本发明实施例二中输出信息区方法流程图; 图5为本发明实施例二中输出数据区方法流程图; 图6为本发明实施例提供的文件打包工具结构框图。
具体实施例方式 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一 参见图1,本发明实施例提供一种文件打包方法,包括如下步骤 S101预先创建包括待打包文件路径信息的文件列表listfile。
需要说明的是,可以在当前文件打包工作目录(即本文件打包工具所在当前工作目录)中创建包括待打包文件路径信息的文件列表;或者,也可以在当前文件打包工作目录外的其它目录中创建包括待打包文件路径信息的文件列表,即本打包技术支持listfile在其它目录。
S102遍历文件列表listfile获取待打包文件名称总长度及文件总数,输出包括待打包文件总数的控制区。
实际应用中,输出包括待打包文件总数的控制区的方法可以具体为 输出预设标识值,所述标识值用于标识是由所述文件打包方法打包生成; 输出第一保留值,所述第一保留值用于版本升级和/或格式扩充; 输出版本号; 获取当前系统时间,输出所述当前系统时间; 输出所述文件总数; 输出第二保留值,所述第二保留值用于版本升级和/或格式扩充; 输出结束符,所述结束符用于标识所述控制区结束。
S103根据待打包文件路径信息、文件名称总长度和文件总数,计算并输出包括各待打包文件长度及数据偏移量的信息区。
实际应用中,根据待打包文件路径信息、文件名称总长度和文件总数,计算并输出包括各待打包文件长度及数据偏移量的信息区可以具体为,对文件列表中的各待打包文件依次执行如下子步骤 由当前待打包文件路径信息获取文件名称; 计算所述文件名称获取文件名称长度,并输出所述文件名称长度; 计算并输出当前待打包文件的数据偏移量; 打开当前待打包文件,计算并输出当前待打包文件长度和校验值; 输出所述文件名称。
信息区主要记录除实际文件数据之外的各待打包文件相关信息,比如可以包括文件名长度、数据偏移量、文件大小、crc32校验码、文件名,等等。
其中,计算当前待打包文件数据偏移量可以具体为 将所述待打包文件名称总长度,与所述文件列表中位于当前待打包文件之前的各待打包文件的数据内容总长度相加,得到当前待打包文件自所述信息区开始的偏移量;所述信息区起始位置值由所述控制区总长度确定。
需要说明的是,控制区的长度是固定的,而信息区起始位置值由控制区总长度确定,即信息区起始位置值相对打包后的文件而言是固定值,这样得到的偏移量在打包文件读取时,更有利于文件定位,效率更高。
另外,计算当前待打包文件数据偏移量还可以具体为 文件列表中位于当前待打包文件之前的各待打包文件的数据内容总长度,作为当前待打包文件自所述数据区开始的数据偏移量;其中数据区起始位置值由所述控制区和信息区总长度确定,所述信息区总长度决定于待打包文件名称总长度。除了信息区的待打包文件名称总长度外,控制区和信息区的其他部分的长度都是固定的,这时计算得到的数据偏移量是相对数据区起始位置的,而由于信息区位于数据区前面,因而,在打包文件读取时,数据定位时除了要考虑数据偏移量,还要考虑信息区的实际长度。
S104输出包括各待打包文件数据内容的数据区。
实际应用中,输出包括各待打包文件数据内容的数据区可以具体为,对所述文件列表中的各待打包文件依次执行如下子步骤 打开当前待打包文件; 读取并输出当前待打包文件的数据内容。
上述步骤中,打开当前待打包文件可以具体包括 由所述文件列表目录名和所述文件路径信息计算待打包文件路径; 依据所述待打包文件路径打开当前待打包文件。
其中,文件路径信息可以是相对文件列表目录名的相对路径信息,相应的,所述待打包文件路径为由所述文件列表目录名和所述文件路径信息组成,比如文件列表目录名/文件路径信息,等。
文件路径信息还可以是绝对路径信息,相应的,所述待打包文件路径为所述文件路径信息。
S105按照控制区、信息区和数据区排列顺序进行封装。
需要说明的是,控制区、信息区和数据区的输出顺序可以是先输出控制区、再输出信息区,最后输出数据区,实际应用中也可以按其它顺序输出,本发明实施例中并不对其输出顺序进行限制。
可见,本发明实施例提供了一种独有的打包格式,其并不关心被打包文件的格式、内容、文件名长度等信息,在文件列表中的各待打包文件都视作地位同等的数据流,从而,彻底解决了现有文件打包技术中对被打包文件的格式、内容,尤其是文件名长度等的限制,能够灵活的应用于更多的应用场合中。
另一方面,本发明实施例将文件打包为控制区、信息区和数据区三个部分,由于在使用文件系统时,通常对文件数据的使用频率低于文件信息的使用频率,而文件数据相对于文件信息要庞大很多,本发明实施例提供的打包格式中,将信息区和数据区独立开,并将信息区置于数据区之前,有利于在使用文件时加快读取文件信息的操作,进一步提高了整体效率。
实施例二 参见图2,本发明实施例提供一种对6个文件进行打包的方法实例,具体包括以下步骤 S201创建一文件列表listfile,逐行列出需要打包的文件。
文件列表listfile示例如下 本打包技术并不关心被打包文件的格式、内容及文件名称的长度等信息,所有文件都视作地位同等的数据流。
本打包技术支持在listfile中待打包文件路径信息可以采用相对路径或绝对路径。
如果是相对路径,则相对的是listfile所在目录。
本打包技术可以支持listfile与本文件打包工具当前工作目录不在同一目录的情况,即listfile可以在其他目录。
S202读取当前命令行参数listfile(文件列表名称),并调用预先编制的文件输出子函数outfile。
S203判断参数是否正确,是则执行步骤S204,否则结束。
S204将参数listfile传送至系统自带的fopen函数,以只读方式打开列表文件listfile。
其中,fopen函数可以是linux系统或其它系统自带的API函数,该API函数的功能是根据接收到的参数(通常是文件名称)获取该文件的目录名,本发明实施例中的文件打包方法可以直接调用该API,打开列表文件listfile,具体包括如下子步骤∶ 将参数listfile传送至系统自带fopen函数,获取列表文件listfile的目录名path; 以只读方式打开列表文件listfile。
本领域技术人员可以理解,fopen函数作为系统自带API函数,其获取listfile目录名及以只读方式打开listfile的具体实现过程此处不再赘述。
S205判断是否打开成功,是则执行步骤S206,否则结束。
S206遍历文件列表listfile,获取待打包文件总数fn,并计算文件名称总长度total_name_len。
需要说明的是,文件名称总长度total_name_len用于在后续程序中确定偏移量offset。
S207执行控制区输出子过程。
预先设置控制区为固定长度,比如32字节,各字节内容参见表1. 表1 具体含义请参见表2。
表2 参见图3,控制区的输出子步骤包括 S301输出0x181C1D。
S302输出7个0x00。
S303输出0x02。
S304获取当前系统时间,按YYYYMMDDHHMMSS(年月日小时分秒)格式输出。
S305按网络字节序输出文件总数fn。
S306∶输出0x00。
S307输出0x0D0A。
实现中,输出控制区的步骤用类似C语言的描述具体如下 struct head{ unsigned char b_magicl[3]; /*magicl固定值,0x181C1D*/ unsigned char b_reservel[7];/*reservel保留值,全是0x00*/ unsigned char b_version[1]; /*version版本号,当前值为0x02*/ unsigned char b_time[12]; /*time按YYYYMMDDHHMMS S格式储存的打包时间*/ unsigned char b_fn[2]; /*fn按网络字节序存放的文件总数*/ unsigned char b_reserve2[1];/*reserve2保留值,全是0x00*/ unsigned char b_magic2[2]; /*magic2固定值,0x0D0A,即\r\n*/ } S208执行信息区输出子过程。
信息区主要记录除实际文件数据之外的各文件相关信息。包括文件名长度、数据偏移位置、文件大小、crc32校验码、文件名。
信息区按指定格式,循环重复fn次,fn为控制区定义的文件总数。
参见图4,信息区的输出子步骤包括 S401设置文件序号变量fid等于0。
S402设置文件总大小变量total_file_size等于0。
S403判断fid是否小于fn,是则执行步骤S404,否则结束。
S404∶读取listfile中第fid个待打包文件名称name。
S405计算文件名称name的长度len并输出。
S406由列表文件listfile所在目录名和文件路径信息求待打包文件打包前所处路径filename。
如果文件路径信息是相对路径,则直接用path/文件路径信息。
如果文件路径信息是绝对路径,则直接用文件路径信息。
S407计算文件数据偏移量offset并输出。
其中,计算当前待打包文件数据偏移量可以具体为 将所述待打包文件名称总长度,与所述文件列表中位于当前待打包文件之前的各待打包文件的数据内容总长度相加,得到当前待打包文件自所述信息区开始的偏移量;所述信息区起始位置值由所述控制区总长度确定。
需要说明的是,控制区的长度是固定的,而信息区起始位置值由控制区总长度确定,即信息区起始位置值相对打包后的文件而言是固定值,这样得到的偏移量在打包文件读取时,更有利于文件定位,效率更高。
另外,计算当前待打包文件数据偏移量还可以具体为 文件列表中位于当前待打包文件之前的各待打包文件的数据内容总长度,作为当前待打包文件自所述数据区开始的数据偏移量;其中数据区起始位置值由所述控制区和信息区总长度确定,所述信息区总长度决定于待打包文件名称总长度。除了信息区的待打包文件名称总长度外,控制区和信息区的其他部分的长度都是固定的,这时计算得到的数据偏移量是相对数据区起始位置的,而由于信息区位于数据区前面,因而,在打包文件读取时,数据定位时除了要考虑数据偏移量,还要考虑信息区的实际长度。
S408打开当前待打包文件。
S409计算文件大小size并输出。
S410计算文件数据crc32校验值,并输出。
S411输出当前待打包文件名称name。
S412关闭当前待打包文件。
S413将文件序号变量fid进行加1处理。
S414将文件总大小变量total_file_size与size相加,将结果作为当前文件总大小变量total_file_size的值,继续执行步骤S403。
实现中,用类似C语言的描述如下 for(i=0;i<fn;i++){ struct rect{ unsigned char b_len[2]; /*lenname的长度*/ unsigned char b_offset[4];/*offset文件数据在buffer中的位置,从信息 区开始的偏移量*/ unsigned char b_size[4]; /*size按网络字节序存放的文件数据大小*/ unsigned char b_crc32[4]; /*crc32文件数据crc32校验码*/ char name[len]; /*name文件名,len为name的长度*/ } } S209执行数据区输出子过程。
数据区记录实际的文件数据,即信息区中size字段。
数据区按指定格式,循环重复fn次,fn为控制区定义的文件总数。
参见图5,数据区的输出子步骤包括 S501设置文件序号变量fid等于0。
S502判断fid是否小于fn,是则执行步骤S503,否则结束。
S503读取listfile中第fid个待打包文件的文件路径信息。
S504由列表文件listfile所在目录名和文件路径信息求待打包文件打包前所处路径filename。
S505打开当前待打包文件。
S506读取当前待打包文件的数据内容data。
S507输出当前待打包文件的数据内容data。
S508关闭当前待打包文件。
S509将文件序号变量fid进行加1处理,继续执行步骤S502。
实现中,用类似C语言的描述如下 for(i=0;i<fn;i++){ struct data{ unsigned char b_data[size];/*data文件实际数据,size为信息区对 应的文件大小字段*/ } } S210关闭文件列表listfile。
S211关闭子函数outfile。
S212结束。
实施例三 参见图6,本发明实施例还提供了一种文件打包工具,包括 文件列表创建模块601,用于创建包括待打包文件路径信息的文件列表; 控制区输出模块602,用于遍历所述文件列表获取待打包文件名称总长度及文件总数,输出包括待打包文件总数的控制区; 信息区输出模块603,用于根据所述待打包文件路径信息、文件名称总长度和文件总数,计算并输出包括各待打包文件长度及数据偏移量的信息区; 数据区输出模块604,用于输出包括各待打包文件数据内容的数据区; 封装模块605,用于按照所述控制区、信息区和数据区排列顺序进行封装。
需要说明的是,本发明实施例提供文件打包工具可以实现图1-图5任意实施例所描述的文件打包方法,其具体技术特征可以参见图1-图5任意实施例中的技术特征,此处不再赘述。
本发明实施例提供了一种独有的打包格式,其并不关心被打包文件的格式、内容、文件名长度等信息,在文件列表中的各待打包文件都视作地位同等的数据流,从而,彻底解决了现有文件打包技术中对被打包文件的格式、内容,尤其是文件名长度等的限制,能够灵活的应用于更多的应用场合中。
另一方面,本发明实施例将文件打包为控制区、信息区和数据区三个部分,由于在使用文件系统时,通常对文件数据的使用频率低于文件信息的使用频率,而文件数据相对于文件信息要庞大很多,本发明实施例提供的打包格式中,将信息区和数据区独立开,并将信息区置于数据区之前,有利于在使用文件时加快读取文件信息的操作,进一步提高了整体效率。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括若干指令用以执行本发明各个实施例所述的方法。这里所述的存储介质,如∶ROM/RAM、磁碟、光盘等。
本发明不局限于上述实施方式,任何人在本发明专利的启示下得出的其他任何与本发明专利相同或相近似的产品,均落在本发明专利的保护范围之内。
权利要求
1.一种文件打包方法,其特征在于,预先创建包括待打包文件路径信息的文件列表,所述方法包括
遍历所述文件列表获取待打包文件名称总长度及文件总数,输出包括待打包文件总数的控制区;
根据所述待打包文件路径信息、文件名称总长度和文件总数,计算并输出包括各待打包文件长度及数据偏移量的信息区,并输出包括各待打包文件数据内容的数据区;
按照所述控制区、信息区和数据区排列顺序进行封装。
2.根据权利要求1所述的方法,其特征在于,所述输出包括待打包文件总数的控制区具体为
输出预设标识值,所述标识值用于标识是由所述文件打包方法打包生成;
输出第一保留值,所述第一保留值用于版本升级和/或格式扩充;
输出版本号;
获取当前系统时间,输出所述当前系统时间;
输出所述文件总数;
输出第二保留值,所述第二保留值用于版本升级和/或格式扩充;
输出结束符,所述结束符用于标识所述控制区结束。
3.根据权利要求1所述的方法,其特征在于,所述根据所述待打包文件路径信息、文件名称总长度和文件总数,计算并输出包括各待打包文件长度及数据偏移量的信息区具体为,对所述文件列表中的各待打包文件依次执行如下子步骤
由当前待打包文件路径信息获取文件名称;
计算所述文件名称获取文件名称长度,并输出所述文件名称长度;
计算并输出当前待打包文件的数据偏移量;
打开当前待打包文件,计算并输出当前待打包文件长度和校验值;
输出所述文件名称。
4.根据权利要求3所述的方法,其特征在于,所述计算当前待打包文件数据偏移量具体为
将所述待打包文件名称总长度,与所述文件列表中位于当前待打包文件之前的各待打包文件的数据内容总长度相加,得到当前待打包文件自所述信息区开始的偏移量;所述信息区起始位置值由所述控制区总长度确定。
5.根据权利要求3所述的方法,其特征在于,所述计算当前待打包文件数据偏移量具体为
所述文件列表中位于当前待打包文件之前的各待打包文件的数据内容总长度,作为当前待打包文件自所述数据区开始的数据偏移量;所述数据区起始位置值由所述控制区和信息区总长度确定,所述信息区总长度决定于所述待打包文件名称总长度。
6.根据权利要求1所述的方法,其特征在于,所述输出包括各待打包文件数据内容的数据区具体为,对所述文件列表中的各待打包文件依次执行如下子步骤
打开当前待打包文件;
读取并输出当前待打包文件的数据内容。
7.根据权利要求3或6所述的方法,其特征在于,所述打开当前待打包文件具体为
由所述文件列表目录名和所述文件路径信息计算待打包文件路径;
依据所述待打包文件路径打开当前待打包文件。
8.根据权利要求7所述的方法,其特征在于,所述文件路径信息为相对所述文件列表目录名的相对路径信息,所述待打包文件路径为由所述文件列表目录名和所述文件路径信息组成;
所述文件路径信息为绝对路径信息,所述待打包文件路径为所述文件路径信息。
9.根据权利要求1所述的方法,其特征在于,所述预先创建包括待打包文件路径信息的文件列表具体为
在当前文件打包工作目录中创建包括待打包文件路径信息的文件列表;或
在当前文件打包工作目录外的其它目录中创建包括待打包文件路径信息的文件列表。
10.一种文件打包工具,其特征在于,包括
文件列表创建模块,用于创建包括待打包文件路径信息的文件列表;
控制区输出模块,用于遍历所述文件列表获取待打包文件名称总长度及文件总数,输出包括待打包文件总数的控制区;
信息区输出模块,用于根据所述待打包文件路径信息、文件名称总长度和文件总数,计算并输出包括各待打包文件长度及数据偏移量的信息区;
数据区输出模块,用于输出包括各待打包文件数据内容的数据区;
封装模块,用于按照所述控制区、信息区和数据区排列顺序进行封装。
全文摘要
本发明提供一种文件打包方法及工具,涉及计算机应用领域。所述方法包括预先创建包括待打包文件路径信息的文件列表,所述方法包括遍历文件列表获取待打包文件名称总长度及文件总数,输出包括待打包文件总数的控制区;根据待打包文件路径信息、文件名称总长度和文件总数,计算并输出包括各待打包文件长度及数据偏移量的信息区,并输出包括各待打包文件数据内容的数据区;按照控制区、信息区和数据区排列顺序进行封装。本发明实施例并不关心被打包文件的格式、内容、文件名长度等信息,文件列表中各待打包文件都视作地位同等的数据流,彻底解决了现有文件打包技术中对被打包文件的格式、内容,尤其文件名长度的限制,能灵活应用在多个应用场合。
文档编号G06F17/30GK101763436SQ20101011233
公开日2010年6月30日 申请日期2010年2月8日 优先权日2010年2月8日
发明者徐佳宏, 程伯钦, 朱吕亮 申请人:深圳市茁壮网络股份有限公司