本发明专利技术公开了一种合并文件的方法,以解决采用现有技术合并文件时存在占用大量系统资源和受到存储空间限制的问题;该方法为:确定需要合并的源文件和各源文件的合并顺序;创建一个新文件作为合并后的目标文件,并将所述合并顺序中的第一个源文件在存储器中的起始位置作为该目标文件的起始位置,和将所有源文件的总长度作为该目标文件的长度记录在该目标文件的文件描述表中;修改文件系统中描述文件存储位置的链表,使所述合并顺序中前一个源文件的最后存储位置指向后一个源文件的起始存储位置;在文件系统中删除所有源文件的文件描述表。
【技术实现步骤摘要】
本专利技术涉及计算机和通信领域的文件系统技术,尤其涉及一种在文件系统中合并文件的方法。
技术介绍
在计算机的实际应用中,经常需要按照一定顺序对多个文件进行合并。如,当通过多媒体硬件向文件系统写入数据时,一般包括视频和音频的数据,而通常的视频和音频播放文件的标准(如AVI),需要将音频和视频数据合并成一个逻辑文件。目前文件合并方法是首先读取源数据,然后再写入目标数据,最后删除源数据。如图1、图2所示,将图1中的四个源文件A、B、C、D合并为图2中的目标文件A1的过程。源文件A、B、C、D占用簇10到簇29,合并时分别将这些文件复制到另一存储区间,合并后目标文件A1占用簇40到59。在一般应用环境下对大的文件进行合并时往往受到剩余空间的限制。例如,需要备份硬盘上的文件时,一般需要把他们打成包(ZIP,TAR,RAR等格式),如果磁盘空间不够,这些操作将不能执行。磁盘空间的余量与操作合并的数据量很多时候是成比例的。例如磁盘总容量有10GB及已有数据6GB;此时需要对6GB的数据进行备份等操作,合并成为一个文件,由于剩余空间只有4GB,该操作将无法被执行。从上可知,现有的文件合并方法存在以下缺点1、由于需要进行读取数据、写入数据和删除数据操作,因此,不仅合并效率低和占用的系统资源多,而且还会导致过多的数据碎片。2、如果剩余空间不足(小于源文件的数据大小),无法进行文件合并操作,因此,受到存储空间的限制。
技术实现思路
有鉴于此,本专利技术提供,以解决采用现有技术合并文件时存在占用大量系统资源和受到存储空间限制的问题。为解决上述问题,本专利技术提供如下技术方案,用于将存储器上的多个文件按顺序合并成一个文件,该方法包括如下步骤A、确定需要合并的源文件和各源文件的合并顺序;B、创建一个新文件作为合并后的目标文件,并将所述合并顺序中的第一个源文件在存储器中的起始位置作为该目标文件的起始位置,和将所有源文件的总长度作为该目标文件的长度记录在该目标文件的文件描述表中;C、修改文件系统中描述文件存储位置的链表,使所述合并顺序中前一个源文件的最后存储位置指向后一个源文件的起始存储位置;D、在文件系统中删除所有源文件的文件描述表。所述步骤C包括如下步骤C1、将所述合并顺序中的第一个源文件作为当前源文件;C2、在描述文件存储位置的链表中查找描述当前源文件的最后存储位置的表项,和根据合并顺序获取当前源文件的后一源文件的起始存储位置;C3、修改描述当前源文件的最后存储位置的表项,使该表项中的下一存储位置指向所述后一源文件的起始存储位置;C4、确定所述后一源文件在所述合并顺序中是否为最后的源文件,如果是则结束修改,否则,将该后一源文件作为当前源文件并转步骤C2。由于采用本专利技术合并文件主要对文件描述表和描述文件存储位置的链表进行修改,不需要复制数据(读和写数据)和清除原数据,因此,不仅占用系统资源少,而且合并效率高,几乎不产生数据碎片;在合并文件过程中仅需极少的存储空间,对剩余空间较少的存储器也可进行文件合并操作。附图说明图1为现有技术中四个文件的文件分配表示意图;图2为现有技术中合并文件的示意图;图3、图4为本专利技术合并文件的流程图;图5为本专利技术对图1中所示文件进行合并后的示意图。具体实施例方式本实施例主要以文件分配表(File Allocation Table,FAT)文件系统对本专利技术进行说明。在本专利技术中需要合并的文件称为源文件,合并后的文件称为目标文件。计算机系统中的文件系统主要完成三项功能跟踪记录存储器上中被耗用的空间和自由空间,维护目录名和文件名,跟踪记录每一个文件的物理存储位置。FAT文件系统采用文件描述表(FDT)来记录文件的属性信息,如存储文件的起始位置、文件长度(大小)等;通过FAT表来记录文件的物理存储位置,FAT表是在FAT文件系统中用于磁盘数据(文件)索引和定位的一种链式表,表中记录存储各文件的簇号。簇(Cluster)是将某一线形范围的物理位置(地址)形成一个管理单位,如磁盘的最小单位是一个扇区,一个簇可以根据需要包含两个、四个甚至更多的扇区。本专利技术在合并文件时,通过修改目标文件的文件描述表(FDT)和修改FAT表来达到合并文件的目的。参阅图3,以合并图1中所示源文件A、B、C、D为例,其主要过程如下步骤1、确定需要合并的各个源文件的名称(包含路径信息)和合并的排列顺序。如输入源文件名A、B、C、D,合并时的排列顺序第一为源文件A,第二为源文件B,第三为源文件C,第四为源文件D。步骤2、在文件系统中创建一个新文件作为合并后的目标文件E。如果目标文件的名称为源文件中的某个文件名,则应当使其路径不同。步骤3、所有源文件的总长度和排列顺序中第一源文件的起始存储位置。通过查询源文件A、B、C、D的文件描述表获取各源文件的长度,然后计算出总长度,同时,从源文件A的文件描述表中得到起始存储位置的簇号(如图中的簇0)。步骤4、修改目标文件E的文件描述表中的起始位置和文件长度,将步骤3中的计算出的文件总长度作为目标文件E的长度,将源文件的起始位置簇号10作目标文件E的起始存储位置。步骤5、修改FAT表,使排列顺序中前一个源文件的最后存储位置指向后一个源文件的起始存储位置。即将源文件A存储的最后簇14的下一簇的指针指向源文件B的起始簇15;将源文件B存储的最后簇19的下一簇的指针指向源文件C的起始簇20;将源文件C存储的最后簇24的下一簇的指针指向源文件D的起始簇25;源文件D存储的最后簇不修改(该最后簇的下一簇指针指向为结束标志)。步骤6、在文件系统中删除源文件A、B、C、D的文件描述表。参阅图4所示,步骤5包括以下步骤步骤51、将排列顺序中的第一个源文件作为当前源文件。步骤52、在FAT表中查找到存储当前源文件的最后簇,根据排列顺序获取当前源文件的后一源文件的起始存储的簇。步骤53、将前源文件存储的最后簇的下一簇指针指向后一源文件的起始存储的簇。步骤54、判断所述后一源文件在排列顺序中是否为最后的源文件,如果是则结束,否则,将该后一源文件作为当前源文件并转步骤52。步骤55、结束修改FAT表。通过4次执行步骤52到54后,即得到上述步骤5中的结果。参阅图5所示,本专利技术对图1所示的四个文件合并后的目标文件在存储器中的物理存储位置并未改变,而只是文件描述表和FAT表产生了变化,即原有的四个源文件A、B、C、D的文件描述表被删除,四个源文件的存储位置按顺序链接。从上可知不需要复制数据(读和写数据)和清除原数据,因此,不仅占用系统资源少,而且合并效率高,几乎不产生数据碎片;在合并文件过程中仅需极少的存储空间,对剩余空间较少的存储器也可进行文件合并操作虽然本实施例以FAT文件系统进行了说明,但并不仅限于此,本专利技术同样适用于NTFS文件系统(用于Windows2000/Windows XP等操作系统)。上述的存储器包括但不限于软盘、硬盘和闪存等。显然,本领域的技术人员可以对本专利技术进行各种改动和变型而不脱离本专利技术的精神和范围。这样,倘若本专利技术的这些修改和变型属于本专利技术权利要求及其等同技术的范围之内,则本专利技术也意图包含这些改动和变型在内。权利要求1.,用于将存储器上的多个文件按顺序合并成一个文件;其特征在于包括如下步骤A、确定需要合并的源文本文档来自技高网...
【技术保护点】
一种合并文件的方法,用于将存储器上的多个文件按顺序合并成一个文件;其特征在于包括如下步骤:A、确定需要合并的源文件和各源文件的合并顺序;B、创建一个新文件作为合并后的目标文件,并将所述合并顺序中的第一个源文件在存储器中的起始 位置作为该目标文件的起始位置,和将所有源文件的总长度作为该目标文件的长度记录在该目标文件的文件描述表中;C、修改文件系统中描述文件存储位置的链表,使所述合并顺序中前一个源文件的最后存储位置指向后一个源文件的起始存储位置;D、 在文件系统中删除所有源文件的文件描述表。
【技术特征摘要】
【专利技术属性】
技术研发人员:谭帅,
申请(专利权)人:北京中星微电子有限公司,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。