一种通信传输中的文件打包解包方法

文档序号:7967880阅读:181来源:国知局
专利名称:一种通信传输中的文件打包解包方法
技术领域
本发明属于数据通信传输技术领域,具体涉及的是一种在通信传输中的文件打包解包方法。
背景技术
随着网络带宽的不断扩大,通信传输速度的不断加快,这使得我们享受到了大文件传输的速度,几百M或者几G的文件一下子就传输完了。然而,这种速度只是对于大文件来说,对于大量需要传输的小文件时,这种速度就难以体现出来了。原因倒不是因为小文件不能达到那么高的传输速度,而是大量文件传输时需要逐一对每一个文件进行传输的建立、传送和结束处理,也就是说大量时间都浪费在了文件传输的建立和结束处理上。再者,在很多网络传输工具或者聊天工具中,文件只能一个一个传送,如果你有大量文件要传送的话,也是比较麻烦的。
解决这种问题的方法就是在放送方把这些小文件打包成一个大文件然后进行传输,在传输的过程中就只需要一次传输建立和传输结束的处理,待传输结束后在接收方对大文件进行解包,得到原先的小文件。目前解决这种传输的打包方法大多采用的是压缩打包的方式,就是在放送方把小文件压缩打包成一个大文件,然后传输到接收方之后进行解压缩得到小文件。这种方法的缺点是如果有很多大量的小文件时,压缩和解压缩需要大量的时间,在整个完整的传输时间中,压缩和解压缩所用的时间占用了大量的比例,传输同时在压缩和解压缩时还产生了新的文件,也占用了一定的空间。
对于这种浪费时间的方法,必须有一种更加合适的方法来打包和解包小文件,使得完整传输的时间减少到最低。目前在这方面专利暂无发现,本发明恰好补充了这一空白。

发明内容
本发明主要针对了现有文件压缩打包解包方式的不足,提出了一种文件打包解包的方法。其主要内容是获取要进行打包的各文件首字节位置和末字节位置,然后记录在一个文件中,对打包的相邻两个文件,一个称为先驱文件,另一个称为后续文件。在记录文件中,将先驱文件的末字节指向后续文件的首字节位置,便可实现两个文件的相串。把所有要打包的文件都按照这种方法相串起来,就能够实现所有文件的打包。由于要进行打包的文件并没有合并到一个新文件中去,仍然与未打包之前分散在外,所以对于该打包方式的解包,只要将记录文件删除就相当于是解包了。其次,在进行传送的过程中,先将记录文件传送给接收方,接收方根据存放路径和存储情况修改记录文件中的路径信息和首字节位置,然后开始传送包文件,接收方在接收文件的过程中通过文件分割功能将接收的文件分割成一个一个文件,仍然组成一个包的形式,存放到指定的位置上。
为了实现上述的发明目的,本发明采用的技术方案如下一种通信传输中的文件打包解包方法由监控模块、信息模块、打包解包控制模块、接收模块、记录模块和记录文件六部分组成。
下面分别介绍这几个方面的内容所述监控模块是通过读取记录文件中的文件信息,了解到哪些文件是包中的文件,并对所属文件进行监控,如果文件被访问并修改,则应将文件修改信息发送给信息模块。例如用户修改文件内容,文件名甚至文件路径或删除文件,监控模块会给出提示,确认之后将信息传送给信息模块。如果文件只是只读访问,则无需通知信息模块。如果包文件处在传送过程中,则禁止修改访问,但仍允许只读访问,同时禁止对包进行添加或删除文件的操作。
所述信息模块是用来获取文件信息,其中包括文件名,文件存放的路径,文件的首字节位置及文件长度,据此可以计算出文件的末字节位置。信息模块接受监控模块的传来的文件修改信息去获取记录文件中文件已修改的信息,或者在开始打包、添加文件和删除文件的时候获取要进行处理的文件的信息,并将这些信息传送给记录模块。
所述打包解包控制模块是首次打包文件的时候将要打包的文件位置传送给信息模块和打包命令传送给记录模块,以及在打包之后往包中增加或删除文件时将文件位置传送信息模块和打包命令传送给记录模块。在解包的时候传送解包命令给记录模块以删除记录文件等。
所述接收模块是接收方在准备接收传送过来的包文件选定本地存放路径时发送路径信息给记录模块,好让记录模块修改记录文件中的路径信息和根据本地存储情况对首字节位置进行修改。
所述记录模块是由匹配、增加、修改、路径修改、删除、删除文件、文件分割等多个小模块组成。
所述匹配模块是匹配信息模块传送过来的信息与记录文件上的信息,看记录文件中是否有这个文件,是否需要进行修改。
所述增加模块是在记录文件中增加一个文件信息,并将上一个文件的末字节指向该文件的首字节位置,而该文件的末字节指向为空。
所述修改模块是在记录文件中修改一个文件信息,例如修改文件的文件名、路径信息、长度等。
所述路径及首字节修改模块是接收方确定本地存放路径时修改记录文件中的路径信息,同时根据接收方的存储情况改变记录文件中各文件的首字节位置,以便传送过来的文件在接收方本地上仍然是一个打包的形式。
所述删除模块是在记录文件中删除一个文件信息,并将该文件的先驱文件(如果存在的话)的末字节指向该文件的后续文件(如果存在的话)的首字节位置。
所述删除文件模块是在收到解包命令时将整个记录文件删除。
所述文件分割模块是接收方在接收文件的过程中根据记录文件的情况对接收的文件进行文件分割,但文件仍处在包中,这是因为文件在传送的过程中是以一个文件的形式传送,所以有必要对这个包文件的内部进行分割才能分开包中所有文件。
上述记录文件记录了打包文件的文件信息,包括文件的文件名,后缀名,文件路径,文件大小及文件首末字节位置等。
这样打包的文件在网络传输的过程中,传送的时候先将记录文件传送到接收方,接收方选定保存传输的文件时同时改动了记录文件中的路径信息,在传送时就根据文件记录逐个将传送过来的文件分开。使用该方法可以同压缩包传输具有相同的传送速率,因为每传输一个文件之后,由该文件的末字节所指向的下一个字节就是下一个文件的首字节,可以直接从存储中读取而不必再建立连接了。相比压缩打包解包的方式,本发明具有的优点如下1)文件打包无需产生大文件,省空间更省时间传统的压缩打包需要将所有文件压缩后产生一个新文件,对于打包大量的小文件时,需要大量的时间和一定的存储空间。而该方法是通过一个记录文件来记录要进行打包文件的首字节位置和末字节位置,在记录文件里将先驱文件的尾部末字节指向后续文件的头部首字节,便可实现两个文件相串起来,而记录这些指针的文件不用占用太多的空间,修改指针也无需太多的时间。而解包则只需删除记录文件即可,更加省时省力。
2)文件使用不受打包限制传统的压缩打包后,文件就打包在压缩包里,如果把压缩的源文件删除的话,那么要用到文件就要解压文件,相当费时。而该方法打包后,文件可以继续使用和访问,如果对文件进行了修改,记录文件会随着进行修改的。
3)增删若干文件方便快捷传统的压缩打包后,如果用户要增加或删除包中若干个文件,增加过程中需要对新文件和打包后整个文件进行计量处理,而选中删除的过程中需要全面检查一下压缩包里所有的文件,解压出要删除的文件,然后把要删除的文件删掉,过程也是比较费时的。而该方法只需修改记录文件,增加文件的时候只要在记录文件中添加新增加的文件的首字节和末字节记录,并与前面的文件相串起来,而删除文件是则只需将记录文件中指定要删除的文件记录移走,再将此文件的前一个文件(如果存在的话)和后一个文件(如果存在的话)相串起来即可。


附图1是文件打包解包方法框架图;附图2是记录模块内部结构图;附图3是本地打包解包流程图;附图4是传输接收流程图。
具体实施方案下面结合附图做进一步说明。
本发明方法的工作过程可归结为(见附图3和附图4)在发送方,由发送方选定打包的文件,在获取文件信息之后不断修改记录文件。在此期间,如果发送方需要添加或者删除文件,也可以通过修改记录文件获得。
当文件在传送的时候,就不允许对文件进行修改,如果不在传输,则文件修改之后会对记录文件做响应的修改,倘若要进行解包则删除记录文件即可。
在文件传输的过程中,接收方先接收记录文件,然后选择存储包文件的路径,接着修改记录文件中的路径信息和首字节位置,便可以开始进行包文件的传输,然后根据记录文件中的大小将包文件分割成各个文件。
具体的过程我们可以来看下面的例子假设在本地要打包Apple.txt,Banana.txt,Orange.txt,Candy.txt四个文件,这四个文件的各项属性值(并没有完全列出)如表1中所示表1打包文件文件属性值表

现在我们把文件添加到记录文件中,并逐个由信息模块获取文件的信息然后由记录模块添加到记录文件中,并把先驱文件的末字节指向后续文件的首字节位置,则当打包文件成功后,可以得到以下的记录文件
表2当前记录文件

这时,如果我们要添加一个Door.txt的文件到包中,Door.txt的路径为E:\temp,首字节位置为0x6589EF53,大小为50K,则通过信息模块获取之后由记录模块添加到记录文件中,得到新的包及以下记录文件表3当前记录文件

现在我们要删除包文件中的Orange.txt,通过记录模块删除文件Orange.txt,然后将Orange.txt的先驱文件的末字节指向它的后续文件的首字节位置,得到新的包,其记录文件如下
表4当前记录文件

这时如果我们要修改Banana.txt,则监控模块会提示,确认之后监控模块会通知信息模块,信息模块重新获得Banana.txt的大小为30K,修改记录文件中的文件大小信息,得到新的包以及以下记录文件表5当前记录文件

如果这时进行传送,则监控模块将不允许修改访问,只读访问还是允许的,同时也禁止了对包中进行添加文件或删除文件的操作。在传送的过程中,我们首先将记录文件传送到接收方,接收方将记录文件中的路径信息清空,然后接收方选择本地存放路径E:\Received,这时接收模块会将路径信息传送给记录模块,记录模块将路径信息写进记录文件中,并重新分配记录文件中各文件位置,首字节位置也会改变,这根据接收方的存储情况而变,这里为了简单起见,假设没有变化,得到以下记录文件表6当前记录文件

现在开始传送文件,在接收方看来,传送过来的文件只是一个文件(也就是打包的包文件),并不是多个文件,于是接收方将接收到的文件按记录文件存放到第一个首字节位置,在计算到接收了20K时,立即转换到末字节指向的下一个文件的首字节位置,采用记录模块中的文件分割功能将文件分割并同时将文件置名为Apple.txt,接着便开始存放第二个文件,依此类推。在接收方看来,只是接收了一个文件,但实际上在文件分割模块处理之后就会把所有文件都存放到指定位置上,最后得到一个包文件。如果在接收方想解包文件,只需发出命令,则记录模块就会把记录文件删除,相当于解了包。
权利要求
1.一种通信传输中的文件打包解包方法,其特征在于由监控模块、信息模块、打包解包控制模块、接收模块、记录模块和记录文件六部分组成。
2.根据权利要求1所述的通信传输中的文件打包解包方法,其特征在于所述的监控模块在包传输过程中禁止对包中文件进行修改访问、允许只读访问,同时禁止对包中进行添加文件或删除文件的操作,而在非传输过程中能够监控被打包文件的访问权限,并以提示的方式通知修改,在得到确认之后通知信息模块。
3.根据权利要求1所述的通信传输中的文件打包解包方法,其特征在于所述的打包解包控制模块将文件位置传送给信息模块和打包命令传送给记录模块,在打包之后往包中增加或删除文件时将文件位置传送给信息模块和打包命令传送给记录模块,以及在解包的时候传送解包命令给记录模块。
4.根据权利要求1或2或3所述的通信传输中的文件打包解包方法,其特征在于所述的信息模块接收打包解包控制模块和监控模块的信息,获取要处理文件的文件信息,并将文件信息送于记录模块。
5.根据权利要求1所述的通信传输中的文件打包解包方法,其特征在于传送过程中先将记录文件传送给接收方,而接收方接收模块根据用户指定本地的存放路径信息发送给记录模块。
6.根据权利要求1或3所述的通信传输中的文件打包解包方法,其特征在于所述的记录模块能够根据打包解包模块传送过来的命令以及信息模块传送过来的文件信息对记录文件进行相应操作,包括添加文件,删除文件,修改文件信息。
7.根据权利要求1或5所述的通信传输中的文件打包解包方法,其特征在于所述记录模块能够根据接收模块传送过来的路径存放信息和本地存储情况修改记录文件中的路径信息和重新确定记录文件中各文件的首字节位置。
8.根据权利要求1所述的通信传输的文件打包解包方法,其特征在于所述的记录模块能够根据记录文件中的首字节位置、末字节指向以及文件大小对接收到的文件进行包内文件分割,使各个文件分割之后仍然构成一个包,并且存在到指定的首字节位置为起始的地方。
9.根据权利要求1或3所述的通信传输的文件打包解包方法,其特征在于所述的记录模块还能够根据打包解包控制模块传送过来的解包命令,删除记录文件,解包文件。
全文摘要
本发明主要针对现有文件压缩方式的不足,提出文件打包解包的方法。其主要内容是获取要进行打包的各文件首字节位置和文件大小,从而计算出末字节位置,记录在一个文件中,在记录文件中,将先驱文件的末字节指向后续文件的首字节位置,便实现两个文件的相串。按照该方法相串起来,就可实现所有文件的打包。对于该打包方式的解包,只要将记录文件删除就相当于是解包了。其次,在传送的过程中,先将记录文件传送给接收方,接收方根据存放路径和存储情况修改记录文件中的路径信息和首字节位置,然后开始传送包文件,这样在接收过程可将接收的文件分割成一个一个文件。在传送速率上,可以达到压缩打包的传送速率,而同时大大减少了打包的时间和空间。
文档编号H04L12/56GK101026551SQ200610122649
公开日2007年8月29日 申请日期2006年10月10日 优先权日2006年10月10日
发明者罗笑南, 李庆敏 申请人:中山大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1