[发明专利]一种文件合并方法及分解方法有效
申请号: | 201110316534.1 | 申请日: | 2011-10-18 |
公开(公告)号: | CN102508880A | 公开(公告)日: | 2012-06-20 |
发明(设计)人: | 韩玉青;胡建华 | 申请(专利权)人: | 广东威创视讯科技股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 禹小明 |
地址: | 510663 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文件 合并 方法 分解 | ||
技术领域
本发明涉及计算机的文件系统技术,具体涉及一种文件合并方法及分解方法。
背景技术
随着信息时代的到来,计算机已经普及应用到生活中的方方面面,而用户的信息在计算机中的主要存储方式是文件和文件夹。计算机中的文件是以计算机硬盘为载体存储在计算机上的信息集合,文件可以是文本文档、图片、程序等等。文件通常具有三个字母的文件扩展名,用于指示文件类型。计算机中的文件夹是用来协助人们管理计算机文件的,每一个文件夹对应一块磁盘空间,它提供了指向对应空间的地址,它没有扩展名,也就不用扩展名来标识。文件夹一般采用多层次结构(如树状结构),文件夹不但可以包含文件,而且可包含下一级文件夹,这样类推下去形成的多级文件架结构既帮助了用户将不同类型和功能的文件分类储存,又方便文件查找,还允许不同文件夹中的文件拥有同样的文件名。计算机的每个用户、每个系统都在不时地跟文件/文件夹打交道。普通用户或程序设计人员,很多时候都需要将多个文件和/或文件夹合并为一个文件来存放,在使用的时候再分解为原来的文件和/或文件夹。
在使用计算机中的文件或文件夹时,我们一般会遇到以下的一些情况:
1.对于一些琐碎的小文件,用户需要合并到一起,而在使用的时候再还原。
2. 技术人员设计程序时不希望把程序的文件结构和文件内容展现给用户,所以把所有内容的文件夹和/或文件合并为一个文件,然后加密,使用时再通过程序把合并后的文件分解为原来的文件和/或文件夹。
3.现在免安装的绿色版程序越来越多,这样就需要把该绿色版程序的执行程序跟内容合并为一个文件,方便用户传播和无需安装就可以使用。
4.技术人员在设计安装程序时需要使用到文件和/或文件夹的合并技术;程序安装时,再使用文件和/或文件夹的分解技术,分解出部分或全部的文件和/或文件夹。
面对上述的文件和/或文件夹合并、分解需求,目前传统的文件合并(不包括压缩技术)技术,都只是简单地把需要合并的源文件(文件和/或文件夹)内容以二进制方式按照先后顺序合并在一个目标文件中,并在特定的位置(目标文件的头部、尾部或在每个源文件的开始位置或结束位置)记录每个源文件的信息(源文件的相对路径、字节数与偏移量)。分解时先打开合并后的目标文件,读出目标文件信息(每个源文件的字节数和偏移量)然后按照文件字节顺序读出每个源文件内容,并在磁盘中生成源文件。这种传统的文件合并、分解方法存在很多缺点:
第一,合并、分解的速度太慢,尤其是包含比较多的大文件时;
第二,文件分解时必须按顺序读取合并后的目标文件,才可以分解出源文件的结构。
第三,文件分解只能整体分解,无法快速地分解出其中的某一个源文件或不分解目标文件就直接使用其中一个源文件,即直接对目标文件进行分析,直接使用目标文件中某个源文件的内存数据。
发明内容
本发明解决的技术问题是克服现有技术的不足,提供一种提高文件合并速度的文件合并方法。
本发明还提供了一种提高文件分解速度,并能够在合并后的目标文件中对某个源文件进行快速查找和分解的文件分解方法。
为解决上述技术问题,本发明的第一个发明目的是实现一种文件合并方法,其采用的技术方案如下:
一种文件合并方法,包括如下步骤:
进行文件合并,遍历读取源文件,形成源文件标记信息并存储到树形结构中;
创建目标文件及相应的内存映射文件;具体是根据源文件的总字节数、存储树形结构所占的字节数再加4个字节(用来存储树形结构内容的大小)创建目标文件及相应的内存映射文件;
把存储树形结构内容所占的字节数和树形结构的内容作为文件头信息先后写入到内存映射文件开始位置;
根据树形结构将源文件的内容写入到内存映射文件中,写入的位置从存储树形结构内容之后开始;
写操作结束后,关闭内存映射文件,形成的目标文件即是合并文件。
本发明使用内存映射文件技术建立目标文件(即合并后的文件)与地址进程空间的映射,然后对源文件、目标文件进行读写分析,能让应用程序使用内存操作来操纵文件,而不必要在文件里来回地读、写、移动文件指针,并采用树形结构存储源文件的标记信息,根据树形结构将源文件的内容写入到内存映射文件中,大大提高了文件合并的速度。
上述方案中,根据树形结构将源文件的内容写入到内存映射文件中的具体步骤包括:
根据当前分配的线程数C创建C个用于记录源文件序列的线程列表Lp;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东威创视讯科技股份有限公司,未经广东威创视讯科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110316534.1/2.html,转载请声明来源钻瓜专利网。