CN1920813A - 资源管理数据包文件格式及资源管理方法 - Google Patents
资源管理数据包文件格式及资源管理方法 Download PDFInfo
- Publication number
- CN1920813A CN1920813A CN 200510094142 CN200510094142A CN1920813A CN 1920813 A CN1920813 A CN 1920813A CN 200510094142 CN200510094142 CN 200510094142 CN 200510094142 A CN200510094142 A CN 200510094142A CN 1920813 A CN1920813 A CN 1920813A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- file
- node
- stage
- child node
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及资源管理的方法,尤其涉及在使用多个资源的应用程序中为有效地管理资源的数据包文件格式及其对应的资源管理方法。依据本发明由于数据包文件格式由作为根目录节点的子目录的子目录节点和包含上述根目录或子目录内的资源数据内容的文件节点构成,从而具有比较容易管理资源和容易开发应用程序的效果。
Description
技术领域
本发明涉及资源管理的方法,特别是使用大量资源的应用程序中为有效地管理资源的数据包文件格式及其资源管理的方法。
背景技术
视窗(Windows)的应用程序(Application)大体上可以分为资源部(Resource part)和执行部(Executable part)。
上述的资源在所有应用程序中都使用,也就是意味着在对话(Dialog)视窗中网罗了在执行部中使用的各种字符串(String)、位图(Bitmap)、一般数据等所有数据。
通常在应用程序中使用资源的方法主要使用两种,包含在资源部中作为一个执行文件来使用的方法以及将资源分离成不同用途的文件的方法。这种方法在附图的图1和图2中示出。
图1是使用传统技术应用程序的资源部的方法的示意图。
如图1所示,应用程序3中,执行部1和资源部2是同时进行管理的形式,为了利用资源,执行部1中直接读取并执行资源部2的数据。
这种方法的优点是,执行文件管理简单,用户可以任意修改,而不会引起执行文件的非正常执行,由于具备以上的优点,故该种方法曾经被广泛使用。
另一方面,最近由于对具有灵活性(Flexible)的应用程序的必要性和多国语言支持,所以将资源分离成不同用途文件是一般趋势。
图2是说明根据传统技术利用另外的资源文件的方法的示意图。
如图2所示,采用的方法是,放置将资源以文件形式进行管理的资源文件2,在应用程序3中以文件形式读取并执行。
这种方法的优点是,资源可以容易修改,可以用户化,资源更新简便,可以支持多语言,或者支持多种皮肤。
但是,如附图1的方法的缺点是资源数量越多就越难以进行管理,图2方法的缺点是在文件系统的特性上不能有效地使用储存空间。
发明内容
因此,本发明的目的是为了解决上述传统技术的问题而提出,提供在应用程序中使用多种多样的资源和更新便捷、操作简单的资源管理方法。
本发明的其它目的是提供无需修改源代码而能够进行作为其它位置的资源的操作的资源管理方法。
为了实现上述目的,依据本发明,资源管理的数据包文件格式的特征在于包括根目录节点、上述根目录节点的子目录的子目录节点以及包含上述根目录或子目录内的资源数据内容的文件节点。
上述目录节点的特征在于,其由节点数目表示部分和包含上述子节点数相应的子节点信息的项目部分组成。
上述项目部分的特征在于,其由区分上述子节点是目录还是文件的区分部分、上述子节点名称长度的表示部分、上述节点名称的表示部分以及表示上述节点位置的偏移部分构成。
上述文件节点的特征在于,其由文件长度表示部分和包含实际数据的文件内容部分构成。
依据本发明,将目录结构变换为数据包格式文件的方法,其特征在于,其包括:第1阶段,将用户指定的目录设定为作业目录;第2阶段,针对上述设定的作业目录生成一个节点(当前节点);第3阶段,在上述当前节点的项目是目录的情况下则生成一个目录节点,并作为子节点登记,将上述当前节点设置为作业目录,从第2阶段开始重复;第4阶段,在上述当前节点的项目是文件的情况下则生成一个文件节点并作为子节点登记后,将文件长度书写部分和文件记录书写部分的相加值设定为子节点大小;第5阶段,与上述项目的种类无关,将项目信息记录部分与上述当前节点相加;第6阶段,将表示子节点数目的字节与上述当前节点的大小相加;第7阶段,记录上述数据包文件的文件头部分和元数据部分,用上述文件头长度和元数据的值对偏移进行初始化,然后计算偏移;第8阶段,在上述生成的节点是目录节点的情况下则记录节点的数目、子节点是目录还是文件、目录名称、计算的偏移;第9阶段,在上述生成的节点是文件的情况下,则记录文件大小和文件内容。
上述偏移是将子节点的大小与当前偏移的相加值。
依据本发明,推出资源管理者应实现的数据包文件中期望文件的方法,其特征在于,其包括:第1阶段,接收路径输入,记忆目录或文件名称;第2阶段,通过上述数据包文件中包含的信息,记忆子节点的数目、子节点是目录还是文件、子节点的名称;第3阶段,判断上述记忆的子节点名称与上述目录或文件名称是否一致;第4阶段,在上述判断结果为一致的情况下,判断子节点是目录还是文件;第5阶段,在上述判断结果是目录的情况下,则求出偏移,再按偏移进行移动,然后从上述输入接收路径中删除当前目录名称,从第1阶段开始重复;第6阶段,在上述判断结果是文件的情况下,将文件内容储存在阵列中,然后返回。
其特征在于,其还包括在上述第3阶段中判断结果为不一致的情况下则从第2阶段开始重复的阶段。
其特征在于,其还包括在上述重复结果、重复次数超过上述记忆的子节点的数目的情况下则返回错误码的阶段。
通过上述说明可知,依据本发明的资源管理方法具有如下效果。
第一,将资源与应用程序分离,从而方便对资源的管理;将资源数据包分离,制作成其它的实用程序,资源的生成、测试及数据包等操作交由设计人员操作,从而方便应用程序的开发。
第二,对资源的访问与对普通文件访问的全部路径相同,可以不对资源进行逐个打包,即使不修改获得应用程序资源的部分,只通过资源管理人员的操作设定就可以从目录和数据包文件中获得希望位置上的资源,方便了应用程序的开发。
第三,将所有的资源放入一个文件中,方便了资源的管理;无需改动目录的结构就可以实现对目录的支持,可以实现希望的分类。
第四,由于对分成目录的资源进行原样打包,所以非常直观;也可以直接使用打包前按照操作制成了文件的资源。
第五,文件系统位于存储器内,对文件访问的速度快,在嵌入式操作系统(由于存储器限制,随着文件的增多,会出现分割现象,嵌入式操作系统不受这种情况的影响)环境中用途更大。
附图说明
图1是根据传统技术的使用应用程序的资源部的方法的示意图。
图2是根据传统技术的使用另外的资源文件的的方法的示意图。
图3是本发明中的数据包文件的结构示意图。
图4是本发明中的目录节点结构示意图。
图5是本发明中的文件节点结构示意图。
图6是依据本发明将目录结构转换成数据包格式的过程示意流程图。
图7是依据本发明的从数据包文件中推出期望文件的方法的示意流程图。
附图主要标记说明
1:执行部 2:资源部
3:应用程序
具体实施方式
下面参照附图对本发明的实施例进行详细说明。
图3是本发明中的数据包文件结构示意图。
如图3所示,子目录信息和实际文件内容混合存在于数据包文件中。
即,数据包文件中包括文件头部分、著作权及其它附属信息的元数据部分、根目录节点、上述根目录的子目录节点和包含实际资源数据内容的特定文件节点等。
在生成上述数据包文件时,如果使用最佳适应算法BFS(breadthfirst Search),给目录节点上赋予优先顺序,将目录节点都放到前面,可以提高管理效率。
具有上述结构的数据包文件为获得特定位置上的文件,首先读取根目录的信息,然后再读取子目录的信息,如此反复,如果到达文件节点则读取相关节点的内容。
例如,为了读取“package\Sub\file”文件,先在根目录是找到package目录节点,读取相关节点的偏移值,将文件点移动到相关位置;再找到Sub目录节点,读取相关节点的偏移,将文件点移动到相关位置;再读取file文件节点的信息,按偏移,将文件点移动到相关位置后读取文件的长度,再读取与该长度文件相适应的数据,最后返回。
图4是本发明中目录节点结构示意图,图5是本发明中文件节点结构示意图。
如图4所示,本发明中的目录节点由2字节的子节点数目(最多可支持65335个)表示部分、包含与子节点数目相适应的子节点信息的项目部分构成。
上述项目部分由1字节的区分子节点是目录还是文件的区分部分、1字节的子节点名称长度表示部分、n字节的子节点名称表示部分、4字节的表示子节点位置的偏移部分等构成。
如图5所示,文件节点与目录节点不同,只包含长度和数据。即,文件节点部分由4字节的文件长度表示部分和n字节的文件内容表示部分构成。
本发明利用上述数据包文件结构,将资源数据归入目录结构中,生成一个文件。下面将参照附图对该过程行详细说明。
图6是依据本发明将目录结构转换成数据包格式文件的过程的示意流程图。
如图6所示,首先将用户指定的目录设定为作业目录。(S10)
针对上述设定的作业目录生成一个节点(当前节点)。(S20)然后再从目录中读取所有下级节点和文件的信息。这时,将上述当前节点的值设定为0。
然后对要数据包文件化的项目是目录还是文件进行判断(S30),如果是目录则生成一个目录节点,并作为子节点登记,将上述当前节点设置为作业目录再从S20开始重复。(S40)
如果上述要数据包文件化的项目是文件,则生成一个文件节点,作为子节点登记,然后用表示文件长度的4字节和表示文件内容的n字节的相加值设定子节点的大小。(S50)
然后,与上述项目的种类无关,在表示目录和文件名称的n字节上加上6字节,然后加到当前节点大小上。(上述6字节为1个项目信息的长度,包括区分目录和文件的1字节、表示名称和长度的1字节、表示子节点位置的偏移的4字节)。(S60)
上述作业直到目录结尾一直反复进行。(S70)
然后在当前节点的大小上加上表示子节点数目(项目个数)的2字节。(S80)
经过S10-S70阶段的作业后,创建数据包文件项目的树构造。
为了将上述树构造变成数据包文件,记录文件头及元数据(著作权等其它信息),使用文件头和元数据的值对偏移进行初始化。(S90)
然后,利用BFS算法从根开始进行检索求出偏移,通过将上述偏移的子节点的大小与当前偏移上获得的值的相加值对上述偏移进行计算。(S100)
上述计算出的值是将各目录节点记录到数据包文件时储存的偏移值。
按上述方法求出偏移值后,利用BFS算法进行检索,对相关节点是目录节点还是文件节点进行区分。(S110)
如果上述相关节点是目录节点则作业过程如下。
使用S80中生成的2字节记录子节点数目。(S120)
使用S60中生成字节中的1字节,在相关项目是目录时记录“D”,相关项目是文件时记录“F”。(S130)
使用S60中生成字节中的1字节,记录目录名称长度。
使用S60中生成字节中的n字节,记录与长度相应的名称。(S140)
使用S60中生成字节中的4字节,记录表示子节点位置的偏移。(S150)
在S120中对所有项目反复进行与S160相应的作业。
如果上述相关节点是文件节点则作业过程如下。
在S50中生成的4字节中记录子节点大小。(S160)
在S50中生成的n字节中记录子节点名称。(S170)
通过上述两个阶段,将项目变成数据包文件,上述阶段是向应用程序开发人员或源代码设计人员提供的实用程序。
另外,从通过上述方法实现的数据包文件中推出期望的文件的如图7所示。
在类似图7的流程中,输入是期望文件的全部路径(Full path),输出是含有相关文件内容的阵列(array)。
如图7所示,在第一次出现“/”之前,将读取的路径记录为目录名称,在第一次出现“/”与最后一次出现“/”之间,都将读取的路径记录为文件。(S210)
对子节点进行检索直到出现与上述目录相关的节点。检索过程如下。
首先读取节点的首2个字节,记忆节点数目。(S220)
再读取下1个字节,记忆子节点是目录还是文件。(S230)
再读取下1个字节,记忆子节点的名称的长度,并记忆与上述长度相应的子节点的名称。(S240)
这时,如果相关子节点的名称是S210中记忆的目录名称(S270),并是S230中记忆的子节点的目录名称(S280),则读取下4个字节,求出偏移,将节点移动到与数据包文件开端相距的距离为偏移值的位置(S290)。
然后,在输入的路径中删除目录名称和“/”后,从S210开始重复操作。(S300)
如果相关子节点的名称是S210中记忆的文件名称(S270),并是S230中记忆的子节点的文件名称(S280),则读取下4个字节,求出文件的长度,并读取与上述长度相应的文件,储存在将要返回的阵列中后返回。(S310)
如果相关节点的名称不是S270中的目录或节点名称,则从S220开始重复操作,重复的次数超过上述S220中记忆的子节点的数目时,则返回错误码。(S250,S260)
通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。
因此,本项发明的技术性范围并不局限于说明书上的内容,而应根据权利要求书来确定其技术性范围。
Claims (9)
1、资源管理数据包文件格式,其特征在于,其包括:
根目录节点,
作为上述根目录节点的子目录的子目录节点,
和包含上述根目录或子目录数据内的资源数据内容的文件节点。
2、如权利要求项1所述的资源管理数据包文件格式,其特征在于,上述目录节点包括:
表示子节点数目的部分,
和包含与上述子节点数目相应的子节点信息的项目部分。
3、如权利要求项2所述的资源管理数据包文件格式,其特征在于,上述项目部分由以下部分构成:
区分上述子节点是目录还是文件的区分部分,
上述子节点名称的长度的表示部分,
上述子节点名称表示部分,
和表示上述子节点位置的偏移部分。
4、如权利要求项1中所述的资源管理数据包文件格式,其特征在于,上述文件节点包括:
表示文件长度的部分,
和包含有实际数据的文件内容部分。
5、资源管理方法,即将目录结构变换为数据包格式文件的方法,其特征在于,其包括:
第1阶段,将用户指定的目录设定为作业目录;
第2阶段,针对上述设定的作业目录生成一个节点(当前节点);
第3阶段,如果上述当前节点的项目是目录,则生成一个目录节点,并作为子节点登记,将上述当前节点设置为作业目录,从第2阶段开始重复;
第4阶段,在上述当前节点的项目是文件的情况下生成一个文件节点,作为子节点登记后将文件长度书写部分和文件记录书写部分的相加值设定为子节点大小;
第5阶段,与上述项目的种类无关,将项目信息记录部分加入上述当前节点;
第6阶段,将子节点数目表示字节与当前节点的大小相加;
第7阶段,记录上述数据包文件的文件头部分和元数据部分,用上述文件头长度和元数据的值对偏移进行初始化,然后计算偏移;
第8阶段,在上述生成的节点是目录节点的情况下,则记录子节点的数目、子节点是目录还是文件、目录名称、计算的偏移;
第9阶段,在上述生成的节点是文件的情况下,则记录文件大小、文件内容。
6、如权利要求项5所述的资源管理方法,其特征在于,上述偏移是当前偏移与自身子节点大小的相加值。
7、资源管理方法,即推出资源管理者应实现的数据包文件中期望的文件的方法,其特征在于,其包括:
第1阶段,接收路径输入,记忆目录或文件名称;
第2阶段,通过上述数据包文件中包含的信息,记忆子节点的数目、子节点是目录还是文件、子节点的名称;
第3阶段,判断上述记忆的子节点名称与上述目录或文件名称是否一致;
第4阶段,在上述判断结果为一致的情况下,判断子节点是目录还是文件;
第5阶段,在上述判断结果是目录的情况下,则求出偏移后,按偏移值进行移动,从上述输入接收路径中删除当前目录名称,从第1阶段开始重复;
第6阶段,在上述判断结果是文件的情况下,将文件内容储存在阵列中,然后返回。
8、如权利要求项7所述的资源管理方法,其特征在于,其还包括在上述第3阶段中判断结果为不一致的情况下,则从第2阶段开始重复进行的阶段。
9、如权利要求项1所述的资源管理方法,其特征在于,其还包括在上述重复结果、重复次数超过上述记忆的子节点的数目的情况下,则返回错误码的阶段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510094142 CN1920813A (zh) | 2005-08-26 | 2005-08-26 | 资源管理数据包文件格式及资源管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510094142 CN1920813A (zh) | 2005-08-26 | 2005-08-26 | 资源管理数据包文件格式及资源管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1920813A true CN1920813A (zh) | 2007-02-28 |
Family
ID=37778539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200510094142 Pending CN1920813A (zh) | 2005-08-26 | 2005-08-26 | 资源管理数据包文件格式及资源管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1920813A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719141B (zh) * | 2009-12-24 | 2011-09-07 | 成都市华为赛门铁克科技有限公司 | 基于目录对象的文件处理方法和系统 |
CN111026455A (zh) * | 2019-11-27 | 2020-04-17 | 掌阅科技股份有限公司 | 插件生成方法、电子设备及存储介质 |
-
2005
- 2005-08-26 CN CN 200510094142 patent/CN1920813A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719141B (zh) * | 2009-12-24 | 2011-09-07 | 成都市华为赛门铁克科技有限公司 | 基于目录对象的文件处理方法和系统 |
CN111026455A (zh) * | 2019-11-27 | 2020-04-17 | 掌阅科技股份有限公司 | 插件生成方法、电子设备及存储介质 |
CN111026455B (zh) * | 2019-11-27 | 2023-02-24 | 掌阅科技股份有限公司 | 插件生成方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1867911A (zh) | 便于对象系统之间文件属性管理的升级和降级技术 | |
US7624114B2 (en) | Automatically generating web forms from database schema | |
CN1299223C (zh) | 提供关系数据的一致性层次抽象化 | |
CA2137492C (en) | System for and method of providing delta-versioning of the contents of pcte file objects | |
JP4879580B2 (ja) | ユーザ・インタフェースに自動探索メニューを与えるシステムおよび方法 | |
CN1961313A (zh) | 用于索引文件并将相关元数据添加到索引和元数据数据库的方法和系统 | |
US20050289108A1 (en) | Methods and systems for managing data | |
US20100145949A1 (en) | Methods and systems for managing data | |
CN1841379A (zh) | 将文件系统模型映射到数据库对象 | |
CN1773492A (zh) | 组织多个文档的方法以及显示多个文档的设备 | |
CN1670708A (zh) | 一种计算机日志的管理方法 | |
CN1885265A (zh) | 在无需修改源代码的情况下本地化java gui应用的系统和方法 | |
CN1811685A (zh) | 以文档为中心的软件应用程序的面向任务的用户界面模型 | |
CN1519751A (zh) | 生成结构模式候选对象的方法、系统和程序 | |
CN1841362A (zh) | 用于处理电子表格的方法和系统 | |
CN1742271A (zh) | 使用静态列表管理数据的系统和方法 | |
CN1464436A (zh) | 嵌入式系统的数据存放及其查找组合方法 | |
US20130346992A1 (en) | Computing system, method for controlling thereof, and computer-readable recording medium having computer program for controlling thereof | |
CN1545048A (zh) | 一种用二维表实现的树的存储、访问的方法 | |
KR101567455B1 (ko) | 쌍방향 사용자 인터페이스 정의 | |
CN1848851A (zh) | 创建轻量目录访问协议数据交换格式片段的方法与计算机 | |
CN1614927A (zh) | 在b/s结构中实现树型结构的方法 | |
CN1920813A (zh) | 资源管理数据包文件格式及资源管理方法 | |
CN1752944A (zh) | 基于脚本的三维建模软件自动测试方法 | |
JP2007287147A (ja) | 高速ファイル属性検索 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |