CN104267952B - 一种基于结构化存储的文件打包方法 - Google Patents
一种基于结构化存储的文件打包方法 Download PDFInfo
- Publication number
- CN104267952B CN104267952B CN201410499489.1A CN201410499489A CN104267952B CN 104267952 B CN104267952 B CN 104267952B CN 201410499489 A CN201410499489 A CN 201410499489A CN 104267952 B CN104267952 B CN 104267952B
- Authority
- CN
- China
- Prior art keywords
- resource
- file
- data
- packaging
- date
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于结构化存储的文件打包方法,包括以下步骤:设计打包文件结构,以文件头和文件体的形式定义打包文件;对打包文件进行打包;解包打包文件;对打包文件进行后续的添加、修改、删除、索引操作。本发明避免了碎片化资源文件拷贝和转移时的效率低下问题,又提高了资源查找效率,实现了资源的统一管理。在打包技术上是一个新的突破,由于打包效率提高,相应的也会提高应用程序的运行效率,提高应用程序使用者的工作效率,节省劳动时间,降低劳动强度。
Description
技术领域
本发明涉及计算机或各种手持嵌入式可移动设备碎片化资源数据处理技术领域,尤其涉及一种基于结构化存储的文件打包方法。
背景技术
几乎所有的应用程序都会包含执行体和数据两类文件,有的应用程序使用的数据文件尺寸小,但数量却庞大;有的应用程序在使用过程中还会产生大量的运行时数据文件。如果规划不得当,这些数据文件将呈现碎片化的状态,后续备份、转移、拷贝、加密等操作等会非常不方便。
专利《一种网管系统及多版本信令解码方法》,公开号为CN201010588262中,使用XML存储结构化数据,因为XML数据的扩展标记特性和其文本特性,此发明技术不适用于存储大容量数据,且不适宜存储大量的二进制数据。另外XML数据的解析难度也较大。
专利《树形目录结构下的文件集在数据库中存储和访问方法》公开号为CN200910065938中,使用数据库存储树形数据,但是常见的关系型数据库不适宜存储大容量二进制数据。
发明内容
本发明为了解决上述问题,提出了一种基于结构化存储的文件打包方法,本发明将实现文件打包技术,技术包括打包文件的结构设计、打包流程、解包流程和二次修改流程。为方便叙述,将打包文件称为包文件,被打包的文件称为资源。
为了实现上述目的,本发明采用如下技术方案:
一种基于结构化存储的文件打包方法,包括以下步骤:
(1)设计打包文件结构,以文件头和文件体的形式定义打包文件;
(2)对打包文件进行打包;
(3)解包打包文件;
(4)对打包文件进行后续的添加、修改、删除、索引操作。
所述步骤(1)的具体方法为:打包文件结构为:文件头+文件体。
其中,文件头中包含包文件的识别标志、版本号和自述信息。
文件头 | 文件体 |
识别标志+版本号+自述 | 资源系统 |
所述步骤(1)中,文件体中包含资源的名称、创建日期、修改日期和资源数据,为实现机构化存储,将资源分为三种类型:“资源”、“资源组”和“资源系统”;其中:资源,代表单个独立的实体,其包含资源名称、创建、修改时期、数据大小、是否压缩、压缩大小和实际的资源数据;资源组,代表一组资源的分组,其包含组名称、创建、修改日期和资源系统;资源系统,各类资源总成的抽象概念,打包文件的文件体就是一个完整的资源系统,其包含资源的总个数和资源或资源组的总个数和资源组。
所述步骤(1)中,资源系统的组成为自描述结构,整个系统的层次、命名和日期信息,连续存储在整个文件体中,实现向FTP服务器边打包边上传,和从FTP服务器边下载边解包。
所述资源和资源组的命名存储原则上不设长度限制,以NULL字符结尾。
所述步骤(2)中,打包流程即为单向的递归流,具体包括以下步骤:
(2-1)从文件头开始,写入文件的识别标志、版本号和文件自述数据;
(2-2)开始资源系统,写入资源+资源组个数;
(2-3)依次开始写入资源名称/日期/数据、资源组名称/日期;
(2-4)如果文件体为资源组,则回到步骤(2-2);
(2-5)结束。
所述步骤(3)中,解包流程为单向的递归流,具体包括以下步骤:
(3-1)从文件头开始,读入文件的识别标志、版本号和文件自述数据;
(3-2)、开始资源系统,读入资源+资源组个数;
(3-3)、依次开始读取资源名称/日期/数据等、资源组名称/日期等;
(3-4)、如果文件体为资源组,则回到(3-2);
(3-5)、结束。
所述步骤(4)中,添加打包文件的具体方法为:
(I)、定位欲添加到的资源系统;
(II)、资源系统的个数增1;
(III)、定位到资源系统的结尾;
(IV)、此位置后内容后移欲添加资源的大小;
(V)、写入新数据;
(VI)、结束。
所述步骤(4)中,文件删除的具体方法为:
(i)、定位欲删除资源的本层资源系统;
(ii)、资源系统个数减1;
(iii)、移除欲删除资源的数据;
(iv)、被删除资源后数据整体前移;
(v)、结束。
所述步骤(4)中,文件修改的方法包括:
(a)、定位到欲修改资源;
(b)、修改其属性或数据;
(c)、如果尺寸有变动,调整其后数据整体迁移;
(d)、结束。
所述步骤(4)中,命名索引的方法为:按照资源名称字母建立二分查找树,树节点为资源或资源组的索引信息,包括名称、日期、大小和存储位置,查找时亦利用其层次结构实现递归查找。
本发明具有以下特点:
1)编程人员专用,应用范围具有一定局限性;
2)结构化存储,亦即多层存储,可实现命名索引和快速查找;
3)灵活扩充,包文件可被二次修改;
4)资源大小上限为2Gbytes;
5)每层个数上限为2147483647;
6)打包文件总大小无限制;
7)资源数据是否压缩可选;
8)支持边打包,边流式传输;
9)支持边流式传输,边解包;
10)支持长资源名;
11)支持存储资源的修改日期等信息;
为提高资源查找效率,对包内资源名使用查找树编制索引,索引可以在内存中生成,也可单独保存为文件。
本发明的有益效果为:
(1)在计算机或各种手持嵌入式可移动设备碎片化文件处理技术领域是一个新的突破,全面解决了打包、解包、管理和流式传输等问题,提供了一种文件打包技术领域的新思路;
(2)利用结构化存储技术,最大限度提高打包速度,简化打包流程;
(3)利用自描述的资源系统组织方式,可实现流式传输,为打包文件网络传输提供可操作性;
(4)使用带索引的资源命名表来提高资源查询效率,最大限度减小算法的时间复杂度,有效减少了节点的搜索数目,有效提高了算法的实时性,并保证了查找的准确性,同时,也有效提高了查询效率和有效节省了查询时间;
(5)既避免了碎片化资源文件拷贝和转移时的效率低下问题,又提高了资源查找效率,实现了资源的统一管理;在打包技术上是一个新的突破,由于打包效率提高,相应的也会提高应用程序的运行效率,提高应用程序使用者的工作效率,节省劳动时间,降低劳动强度。
附图说明
图1为本发明的打包文件结构图;
图2为本发明的打包流程图;
图3为本发明的解包流程图;
图4为本发明的添加资源流程图;
图5为本发明的删除资源流程图;
图6为本发明的修改资源流程图。
具体实施方式:
下面结合附图与实施例对本发明作进一步说明。
流程图中部分使用类C的伪代码来描述子流程。
如图1所示,表格详细描述了资源系统的整个组织结构。打包文件结构为:文件头+文件体。其中,文件头中包含包文件的识别标志、版本号和自述信息。
文件头 | 文件体 |
识别标志+版本号+自述 | 资源系统 |
文件体中包含资源的名称、创建日期、修改日期和资源数据等,为实现机构化存储,将资源分为三种类型:“资源”、“资源组”和“资源系统”。
资源,代表单个独立的实体,其包含资源名称、创建、修改时期、数据大小、是否压缩、压缩大小和实际的资源数据(类似于单个文件);
资源组,代表一组资源的分组,其包含组名称、创建、修改日期和资源系统(类似于文件夹);
资源系统,各类资源总成的抽象概念,打包文件的文件体就是一个完整的资源系统,其包含资源(或资源组)的总个数和资源(+资源组);
资源系统的设计便于打包文件多次修改,删除和添加资源(或资源组)时,只影响当前层次的资源系统,除数据外,修改相应层次的资源(或资源组)的总个数即可。
资源系统(即文件体)的组成为自描述结构,整个系统的层次、命名和日期等信息,连续存储在整个文件体中,此设计可实现向FTP服务器边打包边上传,和从FTP服务器边下载边解包。
资源(和资源组)的命名存储原则上不设长度限制,以NULL字符结尾。
资源(和资源组)都包含创建日期和修改日期,以备后需。
资源数据包含压缩(无损)属性和压缩大小,对于文本型的资源数据,压缩可节省大量的存储空间。
如图2所示,打包文件打包的详细流程图。因为资源系统的设计为自描述的层次结构,所以打包流程即为单向的递归流。
(2-1)从文件头开始,写入文件的识别标志、版本号和文件自述数据;
(2-2)开始资源系统,写入资源+资源组个数;
(2-3)依次开始写入资源名称/日期/数据、资源组名称/日期;
(2-4)如果文件体为资源组,则回到步骤(2-2);
(2-5)结束。
如图3所示,打包文件解包的详细流程图。解包流程同为单向的递归流。
(3-1)从文件头开始,读入文件的识别标志、版本号和文件自述数据;
(3-2)、开始资源系统,读入资源+资源组个数;
(3-3)、依次开始读取资源名称/日期/数据等、资源组名称/日期等;
(3-4)、如果文件体为资源组,则回到(3-2);
(3-5)、结束。
如图4所示,打包文件添加资源的详细流程图。
(I)、定位欲添加到的资源系统;
(II)、资源系统的个数增1;
(III)、定位到资源系统的结尾;
(IV)、此位置后内容后移欲添加资源的大小;
(V)、写入新数据;
(VI)、结束。
如图5所示,打包文件删除资源的详细流程图。
(i)、定位欲删除资源的本层资源系统;
(ii)、资源系统个数减1;
(iii)、移除欲删除资源的数据;
(iv)、被删除资源后数据整体前移;
(v)、结束。
如图6所示,打包文件修改资源的详细流程图。
(a)、定位到欲修改资源;
(b)、修改其属性或数据;
(c)、如果尺寸有变动,调整其后数据整体迁移;
(d)、结束。
命名索引
为提高资源查找效率,按照资源名称字母建立二分查找树,树节点为资源或资源组的索引信息,包括名称、日期、大小和存储位置等,查找时亦可利用其层次结构实现递归查找,细节不再详述。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (9)
1.一种基于结构化存储的文件打包方法,其特征是:包括以下步骤:
(1)设计打包文件结构,以文件头和文件体的形式定义打包文件;
(2)对打包文件进行打包;
(3)解包打包文件;
(4)对打包文件进行后续的添加、修改、删除、索引操作;
所述步骤(1)中,文件体中包含资源的名称、创建日期、修改日期和资源数据,为实现机构化存储,将资源分为三种类型:“资源”、“资源组”和“资源系统”;其中:资源,代表单个独立的实体,其包含资源名称、创建、修改时期、数据大小、是否压缩、压缩大小和实际的资源数据;资源组,代表一组资源的分组,其包含组名称、创建、修改日期和资源系统;资源系统,各类资源总成的抽象概念,打包文件的文件体就是一个完整的资源系统,其包含资源的总个数和资源,或资源组的总个数和资源组;
打包流程和解包流程为单向的递归流。
2.如权利要求1中所述的一种基于结构化存储的文件打包方法,其特征是:所述步骤(1)的具体方法为:打包文件结构为:文件头+文件体;
其中,文件头中包含打包文件的识别标志、版本号和自述信息。
3.如权利要求1中所述的一种基于结构化存储的文件打包方法,其特征是:所述步骤(1)中,资源系统的组成为自描述结构,整个系统的层次、命名和日期信息,连续存储在整个文件体中,实现向FTP服务器边打包边上传,和从FTP服务器边下载边解包。
4.如权利要求1中所述的一种基于结构化存储的文件打包方法,其特征是:所述资源和资源组的命名存储原则上不设长度限制,以NULL字符结尾。
5.如权利要求1中所述的一种基于结构化存储的文件打包方法,其特征是:所述步骤(2)中,打包流程即为单向的递归流,具体包括以下步骤:
(2-1)从文件头开始,写入文件的识别标志、版本号和文件自述数据;
(2-2)开始资源系统,写入资源+资源组个数;
(2-3)依次开始写入资源名称/日期/数据、资源组名称/日期;
(2-4)如果文件体为资源组,则回到步骤(2-2);
(2-5)结束。
6.如权利要求1中所述的一种基于结构化存储的文件打包方法,其特征是:所述步骤(3)中,解包流程为单向的递归流,具体包括以下步骤:
(3-1)从文件头开始,读入文件的识别标志、版本号和文件自述数据;
(3-2)、开始资源系统,读入资源+资源组个数;
(3-3)、依次开始读取资源名称/日期/数据等、资源组名称/日期等;
(3-4)、如果文件体为资源组,则回到(3-2);
(3-5)、结束。
7.如权利要求1中所述的一种基于结构化存储的文件打包方法,其特征是:所述步骤(4)中,添加打包文件的具体方法为:
(I)、定位欲添加到的资源系统;
(II)、资源系统的个数增1;
(III)、定位到资源系统的结尾;
(IV)、此位置后内容后移欲添加资源的大小;
(V)、写入新数据;
(VI)、结束。
8.如权利要求1中所述的一种基于结构化存储的文件打包方法,其特征是:所述步骤(4)中,文件删除的具体方法为:
(i)、定位欲删除资源的本层资源系统;
(ii)、资源系统个数减1;
(iii)、移除欲删除资源的数据;
(iv)、被删除资源后数据整体前移;
(v)、结束。
9.如权利要求1中所述的一种基于结构化存储的文件打包方法,其特征是:所述步骤(4)中,文件修改的方法包括:
(a)、定位到欲修改资源;
(b)、修改其属性或数据;
(c)、如果尺寸有变动,调整其后数据整体迁移;
(d)、结束;
所述步骤(4)中,命名索引的方法为:按照资源名称字母建立二分查找树,树节点为资源或资源组的索引信息,包括名称、日期、大小和存储位置,查找时亦利用其层次结构实现递归查找。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410499489.1A CN104267952B (zh) | 2014-09-25 | 2014-09-25 | 一种基于结构化存储的文件打包方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410499489.1A CN104267952B (zh) | 2014-09-25 | 2014-09-25 | 一种基于结构化存储的文件打包方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104267952A CN104267952A (zh) | 2015-01-07 |
CN104267952B true CN104267952B (zh) | 2018-01-09 |
Family
ID=52159476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410499489.1A Active CN104267952B (zh) | 2014-09-25 | 2014-09-25 | 一种基于结构化存储的文件打包方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104267952B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111240716A (zh) * | 2020-01-08 | 2020-06-05 | 福建升腾资讯有限公司 | 一种快捷的文件打包方法、系统、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1516184A (zh) * | 2003-01-10 | 2004-07-28 | 华为技术有限公司 | 一种多媒体数据的处理方法 |
CN101329682A (zh) * | 2008-07-22 | 2008-12-24 | 华北电力大学 | 一种分布异构信息资源集成方法 |
CN101667183A (zh) * | 2008-09-02 | 2010-03-10 | 浙江大学 | 一种基于定制的索引建立方法、装置和系统 |
CN102075790A (zh) * | 2009-11-20 | 2011-05-25 | 上海电机学院 | 一种流媒体分发和加密的方法 |
CN103780591A (zh) * | 2012-10-25 | 2014-05-07 | 北京航天长峰科技工业集团有限公司 | 一种公安云计算中心构建方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8756253B2 (en) * | 2007-01-22 | 2014-06-17 | Xerox Corporation | Two-level structured overlay design for cluster management in a peer-to-peer network |
EP2315139A1 (en) * | 2009-09-30 | 2011-04-27 | Systemite Ab | Quick upload |
-
2014
- 2014-09-25 CN CN201410499489.1A patent/CN104267952B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1516184A (zh) * | 2003-01-10 | 2004-07-28 | 华为技术有限公司 | 一种多媒体数据的处理方法 |
CN101329682A (zh) * | 2008-07-22 | 2008-12-24 | 华北电力大学 | 一种分布异构信息资源集成方法 |
CN101667183A (zh) * | 2008-09-02 | 2010-03-10 | 浙江大学 | 一种基于定制的索引建立方法、装置和系统 |
CN102075790A (zh) * | 2009-11-20 | 2011-05-25 | 上海电机学院 | 一种流媒体分发和加密的方法 |
CN103780591A (zh) * | 2012-10-25 | 2014-05-07 | 北京航天长峰科技工业集团有限公司 | 一种公安云计算中心构建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104267952A (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107918612B (zh) | 键值存储系统数据结构的实现方法和装置 | |
CN104866497B (zh) | 分布式文件系统列式存储的元数据更新方法、装置、主机 | |
CN103488704B (zh) | 一种数据存储方法及装置 | |
CN105094707B (zh) | 一种数据存储、读取方法及装置 | |
CN104462141B (zh) | 一种数据存储与查询的方法、系统及存储引擎装置 | |
CN104615677B (zh) | 一种图数据存取方法及系统 | |
JP2016519810A5 (zh) | ||
CN109766312A (zh) | 一种区块链存储方法、系统、装置及计算机可读存储介质 | |
CN105159616A (zh) | 一种磁盘空间管理方法及装置 | |
Reiser | ReiserFS | |
CN104572670A (zh) | 一种小文件的存储、查询及删除方法和系统 | |
CN105677904B (zh) | 基于分布式文件系统的小文件存储方法及装置 | |
CN104217023A (zh) | 一种利用打包技术解决地图瓦片存储的方法 | |
CN104537129A (zh) | 一种基于Web的数据库虚拟存储处理方法 | |
CN103500206A (zh) | 基于文件存储数据的存储方法及装置 | |
CN104881461A (zh) | 一种快速数据保存方法 | |
CN104537012B (zh) | 数据处理方法和装置 | |
CN102520994A (zh) | 流式加载虚拟文件方法及系统 | |
CN104267952B (zh) | 一种基于结构化存储的文件打包方法 | |
US7523392B2 (en) | Method and system for mapping between components of a packaging model and features of a physical representation of a package | |
CN107194001A (zh) | 一种列式存储格式文件快速合并方法及其系统 | |
CN110020272A (zh) | 缓存方法、装置以及计算机存储介质 | |
CN104142979A (zh) | 一种实现rfid标签存储管理的索引方法 | |
CN101739391A (zh) | 生成二进制文件格式电子书的方法及其生成的电子书 | |
CN104636452B (zh) | 一种面向scm的统一文件系统管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190429 Address after: 250101 Room A205, Block F, Pioneering Plaza, Qilu Software Park, No. 1 Shunhua Road, Jinan High-tech Zone, Shandong Province Patentee after: Shandong Conway Software Co., Ltd. Address before: 250101 Qilu Software Park, No. 1 Shunhua Road, Jinan High-tech Development Zone, Shandong Province, A 203 Patentee before: Shandong Conwell Communication Technology Co., Ltd. |
|
TR01 | Transfer of patent right |