合并档案文件的方法 本发明涉及一种合并文件档案文件的方法,特别涉及通过档案文件合并的方式,进一步达到保护原始档案不被盗取或利用,并达到节约系统资源、提升档案文件的执行速度的方法。
目前计算机软件所用的档案文件一般都数量巨大,并且包含庞大的目录结构,一般而言,软件对其档案文件都没有简便有效的保护措施,档案文件也很容易被获得和利用,例如一个包含有五十张图的游戏,其圆形档案文件很容易被使用者取得,并改作其他用途,这样软件创作者的利益就会受到侵害;有的软件虽然对自己的档案文件进行了加密(encryption),但由于对每个档案文件开启或执行时都要进行一次解密过程,因而对软件的执行效率有不少影响。另一方面,目录结构越复杂,则计算机在执行档案文件的开启或执行的速度将越慢,随着计算机软件日益庞大的趋势,软件地目录结构也日趋复杂,而本发明所提供的档案文件合并方法,则可以使整个软件只使用一两个档案文件,因而大大简化了目录结构,在提高软件的执行速度的同时,又可防止对档案文件的盗取,增强了对软件创作者利益的保护。
本发明的主要目的,就是要解决前述的问题,提供一种可以防止原始档案被盗取、提高软件的执行速度、并且可以节约系统资源档案文件的合并方法。
根据本发明的方法,是将多数个原始档案重新组合为一集合档案文件,并利用在此一集合档案文件起始部分设置索引信息的方法,达到对原始档案保护的目的。
本发明是将多个原始档案合并成一集合档案文件,其构成包含有:一用以提供执行或开启原始档案的索引文件头,以及多个且多种的原始档案;其中文件头记录了各个被合并的原始档案的原始档案名称、大小、相对于集合档案起始位置的相对位置,即使欲开启或是执行多个原始档案,亦只需要执行一次开启文件头的动作,便可以获得各个原始档案的相关资料,进一步供计算机读取,不但防止对原始档案的盗取,亦可提高开启或是执行档案文件的速度。
为实现所述目的,本发明提供一种合并档案文件的方法,该方法包括下列步骤:
a.借由一输入装置选择显示于一显示器中欲合并的原始档案;
b.借由一微处理器(CPU)读取一位于计算机可读取的记录媒体中欲合并的该原始档案的相关信息;
c.根据步骤b所取得的相关信息建立成一文件头与一文件体;
d.借由微处理器(CPU)将步骤c的该文件头,以及全部欲合并的该原始档案合并成一个集合档案文件;以及
e.存储前述的集合档案文件于计算机可读取的记录媒体,例如硬盘机、软盘机、盘带机或是存储器中,以备开启或执行该集合档案中的该原始档案。
图1,是为本发明的方法示意图,显示将多个多种原始档案合并成一集合档案文件的方式。
图2,是为文件头的构成表。
图3,是为集合档案文件中各个原始档案的位置关系图。
图4,是为本发明的流程图,显示合并档案文件的流程。
图5,是为本发明的局部流程图,显示开启集合档案文件的流程。
图6,是为本发明的硬件构造方块图。
图7A,7B,是为本发明的方法与传统方法的比较图。
参照图1,根据本发明的方法,为了对档案文件进行高效率的管理,并且保护原始档案不被任意获得或利用,将所有原始档案进行合并,使其成为一个大的集合档案文件,而被合并的原始档案可以有多个且包含多种不同的档案类型,例如:执行档案(Exe)、图形档案文件(Bmp)、声音档案(Wav)。
合并完成的集合档案文件,其组成包括有:
一文件头;以及
各个被合并的原始档案。
文件头主要是用以提供执行或开启被合并的原始档案的索引(index)。
如图2所示,文件头的内容至少包括有:
1.文件标志(Tutorial),是作为集合档案文件的导览,其中记录有此一集合档案文件的相关信息,例如:此一集合档案文件的标识、合成日期、版本序号等,可作为判别此一档案文件是否为一集合档案文件的相关信息;
2.集合档案文件中所包含的原始档案总数;
3.被合并的原始档案位于集合档案文件中的起始处相对于集合档案文件开始位置的相对位置(OP:opposite position);例如:集合档案文件的开始位置为(OP0),则相对于(OP0)的相对位置(OP1),便是第一个被合并的原始档案位于集合档案文件中的起始位置。而集合档案文件中各个原始档案的位置关系,参考图3所示。
4.被合并的各个原始档案的名称:
5.被合并的各个原始档案的存储路径;以及
6.被合并的各个原始档案的大小。
参阅图3,4,5,是为本发明的流程图和硬件构造方块图;例如,有下面4个原始档案存储在计算机可读取的记录媒体e:例如硬盘机、软盘机、盘带机或是存储器的用户数据(userData)目录下:
原始档案名称 大小(byte)
e:\userDate\a1.bmp 40
e:\userDate\a2.bmp 20
e:\userDate\dat\b1.dat 10
e:\userDate\dat\b2.dat 50
根据本发明的方法合并多个多个档案文件的步骤,如图4所示,包括有:
a.借由一输入装置,例如鼠标、数位板、光笔、键盘等选择显示于一显示器中欲合并的原始档案;
b.借由一微处理器(CPU)读取位于计算机可读取的记录媒体,例如硬盘机、软盘机、盘带机或是存储器中欲合并的原始档案的相关信息,例如:被合并的各个原始档案的名称、被合并的各个原始档案的存储路径;以及被合并的各个原始档案的大小;
c.根据步骤(b)所取得的相关信息建立成一文件头与一文件体;
d.借由微处理器(CPU)将步骤(c)的文件头,以及全部被合并的原始档案合并成一个集合档案文件;以及
e.存储前述的集合档案文件于计算机可读取的记录媒体,例如硬盘机、软盘机、盘带机或是存储器中,以备开启或执行集合档案中的档案文件。
其中的步骤(c),还包括有:
(c1).建立集合档案文件的文件头,用以提供执行或开启被合并的原始 档案的索引,此一文件头的内容包含:
1.文件标志(Tutorial);
2.集合档案文件中所包含的原始档案总数;
3.相对位置(OP);
4.被合并的各个原始档案的名称;
5.被合并的各个原始档案的存储路径;以及
6.被合并的各个原始档案的大小;
(c2).设定被合并的原始档案起始处,相对于集合档案文件开始位置的相对位置(OP);
在步骤(c2)所称的相对位置,是用以在开启或是执行被合并的原始档案时,可以快速且正确的找到原始档案的真正起始位置,而找出原始档案的真实位置的方法必须很简单,才不致于影响程序的速度;而决定原始档案的真实位置的方式有很多,以下列举其中可行的几种:
(1)原始档案的相对位置(OP),就是指向原始档案的真实位置,不需进行任何的还原或是转换;
(2)原始档案的真实位置就是相对位置(OP)加上一个常数(C;Constant);例如,“真实位置”=(OP-C),而此一常数可以是任一整数;
(3)原始档案的真实位置就是相对位置(OP)加上一个变数(V;Variable),而这个变数V可以是原始档案在文件头中的档案序号;例如:“真实位置”=(OP+V);
在本发明所称的相对位置(OP),是为被合并的原始档案相对于集合档案文件开始位置的相对位置;而根据本发明的方法的第一种实施例,比一相对位置(OP)是由微处理器所决定,因此可以为任何的相对位置,或是代表原始档案所在的真实位置值。
(c3).依据步骤(c2)的相对位置(OP),存储被合并的原始档案于集合档案文件内的一真实位置,成为一档案文件体。
合并完成的集合档案文件,其组成如下表所示: 大小 相对位置 定义 Com.dat.... 集合档案文件的识别标志 文 件 头 4 包含原始档案的总数 e:userDataa1.bmp 40 0 原始档案一的信息 e:userDataa2.bmp 20 40 原始档案二的信息 e:userDatadatb1.dat 10 60 原始档案三的信息 e:userDatadatb2.dat 50 70 原始档案四的信息 Xxxxx A1.bmp的内容 案 档 Yyyyy A2.bmp的内容 Zzzzz B1.bmp的内容 Aaaaa B2.bmp的内容
根据本发明的方法,开启或是执行某一集合档案文件时,如图5所示,其步骤包括有:
1.利用一微处理器(CPU)30读取位于计算机可读取的记录媒体40,例如硬盘机、软盘机、盘带机或是存储器中的集合档案文件的文件头的资料;
2.存储步骤1中的文件头资料于一计算机可读取的记录媒体40,例如硬盘机、软盘机、盘带机或是存储器,成为一索引表,用以提供查询被合并的原始档案或读取被合并的原始档案的索引;
在实际工作时,是由微处理器(CPU)30找到集合档案文件,然后把档案文件头读入内存于一计算机可读取的记录媒体40,例如硬盘机、软盘机、盘带机或存储器,建立成一个索引表,用于检索和快速定位,为应用程序开启或是执行每一个子原始档案作好准备,当然,此一建立索引表的动作,也可以在具体要求开启或是执行某一指定的原始档案时再进行。
3.根据文件头中所记录的原始档案相对位置,指到该被选取的原始档案的真实起始位置,并且读取被选取的原始档案;例如:要读取的原始档案a2.bmp是从相对位置40开始的20个字节(byte)的内容,首先定位到原始档案的相对位置,从索引中知道原始档案从相对位置为40之处开始,这样就可以按要求读出20个字节的内容。
4.关闭原始档案;以及
5.藉由微处理器(CPU)30关闭集合档案文件,或是停止执行此一集合档案文件,并且删除前述步骤(2)所述存储于一计算机可读取的记录媒体40,例如硬盘机、软盘机、盘带机或是存储器中的索引表,以待下一次的开启与执行。
而其中的步骤(3),还包括有如下步骤:
步骤31,判断所取得的原始档案类型是否为一执行档案,若是则进行步骤33,若否,则进行下一步骤;
步骤32,根据所取得的原始档案类型,藉由微处理器(CPU)30呼叫并执行相应的应用软件;
步骤33,藉由该微处理器(CPU)30开启或读取被选取的原始档案。
其中的步骤4还包括有如下步骤:
步骤41,取得欲关闭的原始档案的头衔(handle);
步骤42,判断原始档案是否还在被使用,若是,则将存储于头衔中对应的使用次数记录值减1,并进行下一步骤,若否,则进行下一步骤;
这里应注意:在原始档案头衔之中是设有一标志用以记录原始档案的使用状态,原则上若是某一原始档案正被使用则将对应的使用次数记录值加1,一旦此一原始档案不再使用,便自动将使用次数记录值减1,当使用次数记录值为0,便表明此一原始档案已经不再被使用;以及
步骤43,判断此一集合档案文件中全部原始档案的使用次数记录值是否为0,若是,则进行步骤5,若否,则不做处理。
前述的步骤31至步骤33如同一般的应用程序在开启某一原始档案时,必需要先取得此一原始档案的相关资料,用以判断此一原始档案是一个执行档案(Exe)、图形档案文件(Bmp)、声音档案(Wav)、文字档案(Txt)…等档案类型中的任一者,以及任一原始档案目前的状态,例如该原始档案是否正被使用,或是使用的次数,以便应用程序可以根据此原始档案的档案类型执行对应的应用软件或是在一个指定的区域内进行维护或编辑。
本发明所揭露的方法中,原始档案的相对位置(OP):是用来记录原始档案在合并后的集合档案文件中的开始位置,因此相对位置(OP)的计算可以有许多种不同的方法,除了前述由微处理器所决定的方法外,也可借由计算的方式指定,例如:
设集合档案文件所包含的原始档案数为n,则相对位置(OP)可以是一个参数(P;Parameter)与原始档案的文件序号(Fn;File Number)相乘的值,亦即是:OP=(P×Fn);
同理,相对位置(OP)可以是微处理器(CPU)依据一运算式运算得的一个值。
当然前述的相对位置(OP),也可以是被合并的各个原始档案的起始位置彼此之间的相对位置,以多数个彼此首尾连续存储的原始档案为例,由于每个被合并的原始档案是首尾相接的依序排列,因此对任二个彼此连续存储的原始档案而言,后者的原始档案的起始位置相对于前者的原始档案起始位置的相对位置(OP),就是前者原始档案的起始相对位置与前者原始档案大小的相加值,即可求得后者原始档案的相对位置(OP)。
因此针对不同的计算方法,在读取合并档案文件时,要用对应的方法,才可以找到原始档案位于集合档案文件中的真正位置。
由以上的实施例说明,可以了解根据本发明的方法欲开启或是执行原始档案时,首先要打开合并的集合档案文件,然后根据集合档案文件中所包含的索引信息,指出原始档案在集合档案文件中的位置,然后对其进行开启或是执行的动作。
因此借由图7A,7B的比较,可以发现将本发明的方法与传统方法比较,利用本发明的方法欲开启或是执行多个原始档案,也只需要执行一次开启文件头的动作,便可以自文件头获得各个原始档案的相关资料,进一步供计算机读取,不但能够防止对原始档案的盗取,亦可提高开启或是执行档案文件的速度。在整个应用程序运行的过程中,集合档案文件并不是总是处于打开状态的,只有当有选取子原始档案时,才打开集合档案文件,当没有一个子原始档案被选取时,系统就关闭集合档案文件。这样,如果同时有多个子原始档案被选择开启或是执行时,效率会提高。
另外、就本发明的方法的另一可行实施例而言,在使用者看来,整个集合档案文件犹如透明的,当使用者欲开启某一个原始档案时,使用者并不知道此一原始档案只是一般的档案文件,还是一个集合档案文件中的子文件。整个集合档案文件由一个管理器管理,当使用者要开启或是执行某一个原始档案,首先要藉由管理器得到一个标识,以后用这个标识就可以开启或是执行原始档案。就开启或是执行某一原始档案的程序而言,管理器会自动寻找所有的集合档案文件,如果找不到,再至计算机可读取的记录媒体中,寻找被选定的原始档案,然后返回一个标识供使用者利用。当然在此所指的管理器可以是一种用以开启集合档案文件的工具,其可以在需要时被使用,或是一种常驻的程序模组,以协助使用者在需要时用以开启集合档案文件。当然此一说明,仅是举例说明本发明的实施例,并非用以限制本发明的方法。
针对上述存在的问题,本发明提出了一种把多数个原始档案合并为一个集合档案文件的方法,其优点在于;
1.通过对原始档案重新组合成一集合档案文件,并在集合档案文件起始部分设置索引信息的方法,可以达到对原始档案保护的效果。由于是把多种原始档案合并为一个集合档案文件,故不能为别人轻易获得、利用,而由发明所阐述的方法打开合并后的集合档案文件、欲开启或执行某一原始档案,与一般开启或执行档案文件的方式无异,不需要针对每一个子原始档案进行加密与解密,因而提高了执行效率。另外、合并完成的集合档案文件还可以减少软件的存储空间。
2.节省系统资源,无论同时打开多少个原始档案,操作系统对软件只需分配一个集合档案文件的资源。因为打开集合档案文件后即可对所有原始档案进行开启或执行,所以不需要每打开一个原始档案就分配一次系统资源,因而节约了系统资源,另一方面,可以有多个资源同时共享同一个原始档案时,先前技术要对一个原始档案打开多次,而本发明则始终只需要打开一次,因而大大节省了系统资源,提高了软件的执行效率。
3.加快了对软件的开启或是执行速度。因为原始档案的目录结构越复杂,则寻找并且开启或是执行一个原始档案的时间便越长。本发明简化了目录结构,使对所有原始档案的开启或执行成为对一个集合档案文件的动作,很显然提高了软件的运作速度,这在读写速度比较慢的存储介质上表现尤为明显,如光盘,软盘等。