文件夹传输方法及装置的制作方法

文档序号:7765305阅读:233来源:国知局
专利名称:文件夹传输方法及装置的制作方法
技术领域
本发明涉及网络通信技术领域,特别涉及一种文件夹传输方法及装置。
背景技术
IM(Instant Messaging,即时通信)是一种可以让使用者在网络上建立私人聊天室的实时通讯服务。由于文件传输已经成了使用互联网用户的基础应用,因此现有的多数 IM工具集成了文件传输功能,并且为了方便用户进行多文件的传输,很多IM工具在文件传输的基础上开发了文件夹传输功能,以简化用户传输多个文件时的操作。现有技术中,两个IM客户端在传输文件夹时按照如下流程进行IM发送端根据待传输文件夹的目录结构信息生成配置信息,并将该配置信息传输给IM接收端,IM接收端根据配置信息分析待传输文件夹的目录结构信息,然后根据该目录结构信息向IM发送端请求第一个文件,IM发送端接收到该请求后,向IM接收端传输第一个文件的数据,当IM接收端接收完该第一个文件的数据后,再向IM发送端请求第二个文件,依此类推,直至接收完文件夹中的所有文件。由此可知,现有技术中IM发送端在发送完一个文件后,需要等待IM 接收端接收完该文件并传回下个文件请求后,才传输该下个文件。因此,在IM接收端发送请求以及等待IM发送端发送数据的时间间隔内,网络的传输带宽处于闲置状态,特别当文件夹中包含若干较小的文件时,上述时间间隔将极大降低网络带宽的利用率。

发明内容
本发明实施例的目的在于提供一种文件夹传输方法及装置,以解决现有基于文件夹传输文件时,浪费系统带宽的问题。为解决上述技术问题,本申请实施例提供一种文件夹传输方法,是这样实现的一种文件夹传输方法,包括IM接收端获取文件夹的目录信息,所述文件夹为IM发送端待传输给所述IM接收端的文件夹,所述目录信息包括所述待传输文件夹中每个文件的文件标识和文件大小;IM接收端根据所述目录信息中的文件标识向IM发送端发送文件数据获取请求, 并根据所述文件数据获取请求中所请求文件的文件大小增加预先建立的数据成员变量的值;IM接收端接收到IM发送端根据所述获取请求发送的文件数据时,计算所述文件数据的接收速度,并根据所接收到的文件数据的大小减少所述数据成员变量的值;当所述数据成员变量的值小于单位时间内当前接收数据量的预设倍数时,判断是否获取完所述文件夹中的所有文件,若是,则结束流程,否则,返回所述根据目录信息中的文件标识顺序向IM发送端发送文件数据获取请求的步骤。为解决上述技术问题,本申请实施例还提供一种文件夹传输装置,是这样实现的一种文件夹传输装置,包括
获取单元,用于当所述装置作为IM接收端时,获取文件夹的目录信息,所述文件夹为IM发送端待传输给所述IM接收端的文件夹,所述目录信息包括所述待传输文件夹中每个文件的文件标识和文件大小;发送单元,用于根据所述目录信息中的文件标识向IM发送端发送文件数据获取请求;更新单元,用于根据所述文件数据获取请求中所请求文件的文件大小增加预先建立的数据成员变量的值;计算单元,用于接收到IM发送端根据所述获取请求发送的文件数据时,计算所述文件数据的接收速度;所述更新单元,还用于根据所接收到的文件数据的大小减少所述数据成员变量的值;判断单元,用于当所述数据成员变量的值小于单位时间内当前接收数据量的预设倍数时,判断是否获取完所述文件夹中的所有文件,若是,则结束流程,否则,返回所述发送单元执行的功能。由以上本发明实施例提供的技术方案可见,本申请实施例中IM接收端获取包含文件标识和文件大小的文件夹的目录信息,根据该目录信息中的文件标识向IM发送端发送文件数据获取请求,并根据文件数据获取请求中所请求文件的文件大小增加预先建立的数据成员变量的值,接收到IM发送端根据获取请求发送的文件数据时,计算该文件数据的接收速度,并根据所接收到的文件数据的大小减少数据成员变量的值,当数据成员变量的值小于单位时间内当前接收数据量的预设倍数时,判断是否获取完文件夹中的所有文件, 若是,则结束流程,否则,返回向IM发送端发送文件数据获取请求的步骤,直至获取完待传输文件夹中的所有文件。应用本申请实施例进行文件传输时,IM接收端可以根据当前接收速度和已请求传输但还未接收到的文件数据量决定是否发送下个文件数据获取请求,而无需在接收完所请求的文件后再发送下一个文件数据获取请求,因此IM发送端可以持续向IM接收端发送文件数据,与现有技术相比,节约了 IM发送端等待文件数据获取请求的时间,可以充分利用网络带宽,在提高网络带宽利用率的同时减少了文件夹的传输时间。


图1为本申请文件夹传输方法的第一实施例流程图;图2为本申请文件夹传输方法的第二实施例流程图;图3为本申请文件夹传输装置的第一实施例框图;图4为本申请文件夹传输装置的第二实施例框图。
具体实施例方式在如下本发明的多个实施例中,有些实施例提供了一种文件夹传输方法,有些实施例提供了一种文件夹传输装置。为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
请参见图1,其为本申请文件夹传输方法的第一实施例流程图,具体描述如下步骤101 :IM接收端获取文件夹的目录信息,该文件夹为IM发送端待传输给IM接收端的文件夹,该目录信息包括待传输文件夹中每个文件的文件标识和文件大小。IM发送端和IM接收端建立网络连接后,当IM发送端需要向IM接收端发送文件夹时,IM发送端首先遍历待传输文件夹中的文件,计算并生成表示该文件夹占用磁盘空间大小、文件夹中各个文件的路径、每个文件的文件名称、文件标识和文件大小的目录信息。IM发送端向IM接收端发送根据待传输文件夹的目录信息生成的配置信息,IM接收端解析该配置信息后可以获得待传输文件夹的目录信息,在本申请实施例中,目录信息中用于IM接收端向IM发送端请求文件的信息至少包括文件标识和文件大小。步骤102 :IM接收端根据目录信息中的文件标识向IM发送端发送文件数据获取请求,并根据文件数据获取请求中所请求文件的文件大小增加预先建立的数据成员变量的值。待传输文件夹中的文件的文件大小不一,当待传输文件夹中文件的文件大小超过阈值(例如,10K)时,可以在每个文件数据获取请求中仅包含一个文件标识,当待传输文件夹中文件的文件大小小于阈值时,则可以在每个文件数据获取请求中包含至少两个文件标识,以减少发送文件数据获取请求的次数,同时有效利用网络带宽进行数据传输。在IM接收端获取待传输文件夹时,可以在发送第一个文件数据获取请求之前为待传输文件夹建立一个数据成员变量URD,该URD用于表示已经向IM发送端请求但还未收取到的文件数据量。在初始建立URD,并且未发送文件数据获取请求之前,可以先将该URD 的值初始化为零;当发送了一个文件数据获取请求后,可以将URD的值增加所请求文件的文件大小。步骤103 :IM接收端接收到IM发送端根据获取请求发送的文件数据时,计算文件数据的接收速度。IM发送端接收到IM接收端发送的文件数据获取请求后,根据该文件数据获取请求中的文件标识找到对应的文件,并将该文件的文件数据传输给IM接收端,IM发送端传输给IM接收端的文件数据以数据包的形式发送,IM接收端接收到一个完整的数据包后,可以获取该数据包上携带的数据长度,以及根据接收到上一个数据包的结束时间和接收完该数据包的结束时间得到的时间差,该时间差即为该数据包的传输时间,将数据长度除以传输时间得到文件数据的接收速度RSPD。步骤104 根据所接收到的文件数据的大小减少数据成员变量的值。由前可知,在每发送一个文件数据获取请求后,数据成员变量URD的值就相应增加所获取文件的文件大小,因此当接收到文件数据后,可以将URD的值相应减少所接受文件数据的大小,通过URD来表示已经向IM发送端请求但还未收取到的文件数据量。步骤105 判断数据成员变量的值是否小于单位时间内当前接收数据量的预设倍数,若是,则执行步骤106 ;否则,返回步骤104。由于在IM接收端开始接收根据一个文件数据获取请求所传输的文件数据后,数据成员变量URD的值会相应减少。根据现有网络传输机制,当URD大于接收速度RSPD与 RTT(IM发送端发送数据与接收到IM接收端的响应之间的延时)的乘积时,IM发送端就不会处于空闲状态,即网络带宽资源可以得到充分利用,而RTT通常在0. 2秒以内,因此本申请实施例可以为URD的值设置一个阈值,当URD的值小于该阈值时,则在IM接收端在未接收完文件数据的同时,可以向IM发送端发送下一个文件数据获取请求,当URD的值大于该阈值时,则继续接收IM发送端传输的数据。本申请实施例中,上述阈值用单位时间内当前接收数据量(即当前接收速度RSPD 下单位时间内的可接收到的数据量)的预设倍数表示,通常该RSPD的倍数的范围在2倍至 8倍之间,优选的,该倍数为2倍,即可保证网络带宽得到充分利用。步骤106 判断是否获取完文件夹中的所有文件,若是,则结束流程,否则,返回步骤 102。当判断数据成员变量的值是小于单位时间内当前接收数据量的预设倍数时,需要根据目录信息向IM发送端发送下一个文件数据获取请求,此时先判断一下是否获取完待传输文件夹中的所有文件,如果获取完所有文件,则可以结束流程,如果未获取完,则返回步骤102,向IM发送端发送下一个文件数据获取请求。上述实施例主要从IM接收端侧描述了 IM接收端根据URD变量的值向IM发送端发送文件数据获取请求,并接收IM发送端传输的文件数据的过程。需要说明的是,在IM发送端,当IM发送端接收到文件数据获取请求时,将文件数据获取请求加入未发送文件列表中,当IM发送端发送完文件数据获取请求所请求的文件数据后,将文件数据获取请求从未发送文件列表中删除,由此对文件夹传输过程进行维护,保证文件夹中的所有文件都能够传输到IM接收端。由上述实施例的描述可知,IM接收端可以根据当前接收速度和已请求传输但还未接收到的文件数据量决定是否发送下个文件数据获取请求,而无需在接收完所请求的文件后再发送下一个文件数据获取请求,因此IM发送端可以持续向IM接收端发送文件数据,与现有技术相比,节约了 IM发送端等待文件数据获取请求的时间,可以充分利用网络带宽, 在提高网络带宽利用率的同时减少文件夹的传输时间。参见图2,为本申请文件夹传输方法的第二实施例流程图,该实施例结合具体应用详细示出了文件夹的传输过程步骤201 :IM接收端与IM发送端之间建立网络连接。IM发送端与IM接收端之间可以根据网络状况建立网络数据传输通道,该网络数据传输通道可以是P2P(Peer-to-Peer,对等网络)传输通道或服务器中转通道。步骤202 :IM发送端向IM接收端发送根据待传输文件夹的目录信息生成的配置信肩、οIM发送端和IM接收端建立网络连接后,当IM发送端需要向IM接收端发送文件夹时,IM发送端首先遍历待传输文件夹中的文件,计算并生成表示该文件夹占用磁盘空间大小、文件夹中各个文件的路径、每个文件的文件名称、文件标识和文件大小的目录信息。IM 发送端将上述待传输文件夹的目录信息生成配置信息,并将该配置信息传输给IM接收端。步骤203 :IM接收端解析配置信息后获得待传输文件夹的目录信息。IM接收端接收到配置信息后,根据该配置信息解析出待传输文件夹的目录信息。 进一步,IM接收端可以根据目录信息中的文件夹占用磁盘空间大小判断本地用于接收该待传输文件夹的目录空间是否满足该占用磁盘空间大小,以及待传输文件夹中的文件路径长度是否超出本地操作系统的路径长度限制,如果上述条件均满足,则可以根据目录信息中的文件标识和文件大小开始向IM发送端请求待传输文件夹中的文件。步骤204 为待传输文件夹建立数据成员变量,并将该数据成员变量的值初始化为零。在IM接收端获取待传输文件夹时,可以在发送第一个文件数据获取请求之前为待传输文件夹建立一个数据成员变量URD,该URD用于表示已经向IM发送端请求但还未收取到的文件数据量。在初始建立URD,并且未发送文件数据获取请求之前,可以先将该URD 的值初始化为零。步骤205 :IM接收端根据目录信息中的文件标识向IM发送端发送文件数据获取请求。待传输文件夹中的文件的文件大小不一,当待传输文件夹中文件的文件大小超过阈值(例如,10K)时,可以在每个文件数据获取请求中仅包含一个文件标识,当待传输文件夹中文件的文件大小小于阈值时,则可以在每个文件数据获取请求中包含至少两个文件标识,以减少发送文件数据获取请求的次数,同时有效利用网络带宽进行数据传输。步骤206 根据文件数据获取请求中所请求文件的文件大小增加预先建立的数据成员变量的值。由于URD用于表示已经向IM发送端请求但还未收取到的文件数据量,因此当发送了一个文件数据获取请求后,需要将URD的值增加所请求文件的文件大小。步骤207 :IM接收端接收到IM发送端以数据包形式传输的文件数据时,获取该数据包的数据长度和传输该数据包的传输时间。IM发送端接收到IM接收端发送的文件数据获取请求后,根据该文件数据获取请求中的文件标识找到对应的文件,并将该文件的文件数据传输给IM接收端,IM发送端传输给IM接收端的文件数据以数据包的形式发送,IM接收端接收到一个完整的数据包后,可以获取该数据包上携带的数据长度,以及根据接收到上一个数据包的结束时间和接收完该数据包的结束时间得到的时间差,该时间差即为该数据包的传输时间。步骤208 将数据长度除以传输时间得到文件数据的接收速度。步骤209 根据所接收到的文件数据的大小减少数据成员变量的值。在每发送一个文件数据获取请求后,数据成员变量URD的值就相应增加所获取文件的文件大小,因此当接收到文件数据后,可以将URD的值相应减少所接受文件数据的大小,通过URD来表示已经向IM发送端请求但还未收取到的文件数据量。步骤210 判断数据成员变量的值是否小于单位时间内当前接收数据量的两倍, 若是,则执行步骤211 ;否则,返回步骤209。步骤211 判断是否获取完文件夹中的所有文件,若是,则结束流程,否则,返回步骤 205。与本发明文件夹传输方法的实施例相对应,本发明还提供了文件夹传输装置的实施例。参见图3,为本申请文件夹传输装置的第一实施例框图该文件夹传输装置包括获取单元310、发送单元320、更新单元330、计算单元340 和判断单元350。其中,获取单元310,用于当所述装置作为IM接收端时,获取文件夹的目录信息,
8所述文件夹为IM发送端待传输给所述IM接收端的文件夹,所述目录信息包括所述待传输文件夹中每个文件的文件标识和文件大小;发送单元320,用于根据所述目录信息中的文件标识向IM发送端发送文件数据获取请求;更新单元330,用于根据所述文件数据获取请求中所请求文件的文件大小增加预先建立的数据成员变量的值;计算单元340,用于接收到IM发送端根据所述获取请求发送的文件数据时,计算所述文件数据的接收速度;所述更新单元330,还用于根据所接收到的文件数据的大小减少所述数据成员变量的值;判断单元350,用于当所述数据成员变量的值小于单位时间内当前接收数据量的预设倍数时,判断是否获取完所述文件夹中的所有文件,若是,则结束流程,否则,返回所述发送单元320执行的功能。参见图4,为本申请文件夹传输装置的第二实施例框图该文件夹传输装置包括获取单元410、预设单元420、发送单元430、更新单元 440、计算单元450、判断单元460和操作单元470。其中,获取单元410,用于当所述装置作为IM接收端时,获取文件夹的目录信息, 所述文件夹为IM发送端待传输给所述IM接收端的文件夹,所述目录信息包括所述待传输文件夹中每个文件的文件标识和文件大小;预设单元420,用于预先为所述待传输文件夹建立数据成员变量,并将所述数据成员变量的值初始化为零;发送单元430,用于根据所述目录信息中的文件标识向IM发送端发送文件数据获取请求;更新单元440,用于根据所述文件数据获取请求中所请求文件的文件大小增加预先建立的数据成员变量的值;计算单元450,用于接收到IM发送端根据所述获取请求发送的文件数据时,计算所述文件数据的接收速度;所述更新单元440,还用于根据所接收到的文件数据的大小减少所述数据成员变量的值;判断单元460,用于当所述数据成员变量的值小于单位时间内当前接收数据量的预设倍数时,判断是否获取完所述文件夹中的所有文件,若是,则结束流程,否则,返回所述发送单元执行的功能;操作单元470,用于所述装置作为IM发送端,当接收到文件数据获取请求时,将所述文件数据获取请求加入未发送文件列表中,当发送完文件数据获取请求所请求的文件数据后,将所述文件数据获取请求从未发送文件列表中删除。具体的,获取单元410可以包括(图4中未示出)信息生成单元,用于接收IM发送端发送的根据待传输文件夹的目录信息生成的配置信息;目录解析单元,用于解析所述配置信息后获得所述待传输文件夹的目录信息。具体的,计算单元450可以包括(图4中未示出)信息获取单元,用于接收到以数据包形式传输的所述文件数据时,获取所述数据包的数据长度和传输所述数据包的传输时间;速度计算单元,用于将所述数据长度除以所述传输时间得到所述文件数据的接收速度。通过以上的实施方式的描述可知,本申请实施例中IM接收端获取包含文件标识和文件大小的文件夹的目录信息,根据该目录信息中的文件标识向IM发送端发送文件数据获取请求,并根据文件数据获取请求中所请求文件的文件大小增加预先建立的数据成员变量的值,接收到IM发送端根据获取请求发送的文件数据时,计算该文件数据的接收速度,并根据所接收到的文件数据的大小减少数据成员变量的值,当数据成员变量的值小于单位时间内当前接收数据量的预设倍数时,判断是否获取完文件夹中的所有文件,若是,则结束流程,否则,返回向IM发送端发送文件数据获取请求的步骤,直至获取完待传输文件夹中的所有文件。应用本申请实施例进行文件传输时,IM接收端可以根据当前接收速度和已请求传输但还未接收到的文件数据量决定是否发送下个文件数据获取请求,而无需在接收完所请求的文件后再发送下一个文件数据获取请求,因此IM发送端可以持续向IM接收端发送文件数据,与现有技术相比,节约了 IM发送端等待文件数据获取请求的时间,可以充分利用网络带宽,在提高网络带宽利用率的同时减少文件夹的传输时间。本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种文件夹传输方法,其特征在于,包括IM接收端获取文件夹的目录信息,所述文件夹为IM发送端待传输给所述IM接收端的文件夹,所述目录信息包括所述待传输文件夹中每个文件的文件标识和文件大小;IM接收端根据所述目录信息中的文件标识向IM发送端发送文件数据获取请求,并根据所述文件数据获取请求中所请求文件的文件大小增加预先建立的数据成员变量的值;IM接收端接收到IM发送端根据所述获取请求发送的文件数据时,计算所述文件数据的接收速度,并根据所接收到的文件数据的大小减少所述数据成员变量的值;当所述数据成员变量的值小于单位时间内当前接收数据量的预设倍数时,判断是否获取完所述文件夹中的所有文件,若是,则结束流程,否则,返回所述根据目录信息中的文件标识顺序向IM发送端发送文件数据获取请求的步骤。
2.根据权利要求1所述的方法,其特征在于,所述IM接收端获取文件夹的目录信息包括IM接收端接收IM发送端发送的根据待传输文件夹的目录信息生成的配置信息; IM接收端解析所述配置信息后获得所述待传输文件夹的目录信息。
3.根据权利要求1所述的方法,其特征在于,所述计算所述文件数据的接收速度包括 接收到以数据包形式传输的所述文件数据时,获取所述数据包的数据长度和传输所述数据包的传输时间;将所述数据长度除以所述传输时间得到所述文件数据的接收速度。
4.根据权利要求1所述的方法,其特征在于,所述文件数据获取请求中包含至少一个文件的文件标识。
5.根据权利要求1所述的方法,其特征在于,所述预设倍数的范围在二倍至八倍之间。
6.根据权利要求1所述的方法,其特征在于,还包括当IM发送端接收到文件数据获取请求时,将所述文件数据获取请求加入未发送文件列表中;当IM发送端发送完文件数据获取请求所请求的文件数据后,将所述文件数据获取请求从未发送文件列表中删除。
7.一种文件夹传输装置,其特征在于,包括获取单元,用于当所述装置作为IM接收端时,获取文件夹的目录信息,所述文件夹为 IM发送端待传输给所述IM接收端的文件夹,所述目录信息包括所述待传输文件夹中每个文件的文件标识和文件大小;发送单元,用于根据所述目录信息中的文件标识向IM发送端发送文件数据获取请求; 更新单元,用于根据所述文件数据获取请求中所请求文件的文件大小增加预先建立的数据成员变量的值;计算单元,用于接收到IM发送端根据所述获取请求发送的文件数据时,计算所述文件数据的接收速度;所述更新单元,还用于根据所接收到的文件数据的大小减少所述数据成员变量的值; 判断单元,用于当所述数据成员变量的值小于单位时间内当前接收数据量的预设倍数时,判断是否获取完所述文件夹中的所有文件,若是,则结束流程,否则,返回所述发送单元执行的功能。
8.根据权利要求7所述的装置,其特征在于,所述获取单元包括信息生成单元,用于接收IM发送端发送的根据待传输文件夹的目录信息生成的配置 fn息;目录解析单元,用于解析所述配置信息后获得所述待传输文件夹的目录信息。
9.根据权利要求7所述的装置,其特征在于,所述计算单元包括信息获取单元,用于接收到以数据包形式传输的所述文件数据时,获取所述数据包的数据长度和传输所述数据包的传输时间;速度计算单元,用于将所述数据长度除以所述传输时间得到所述文件数据的接收速度。
10.根据权利要求7所述的装置,其特征在于,还包括操作单元,用于所述装置作为IM发送端,当接收到文件数据获取请求时,将所述文件数据获取请求加入未发送文件列表中,当发送完文件数据获取请求所请求的文件数据后, 将所述文件数据获取请求从未发送文件列表中删除。
全文摘要
本申请公开了一种文件夹传输方法及装置,该方法包括IM接收端获取文件夹的目录信息;根据目录信息中的文件标识向IM发送端发送文件数据获取请求,并根据文件数据获取请求中所请求文件的文件大小增加预先建立的数据成员变量的值接收到IM发送端根据获取请求发送的文件数据时,计算文件数据的接收速度,并根据所接收到的文件数据的大小减少所述数据成员变量的值;当数据成员变量的值小于单位时间内当前接收数据量的预设倍数时,判断是否获取完所述文件夹中的所有文件,若是,则结束流程,否则,返回向IM发送端发送文件数据获取请求的步骤。本申请实施例可以充分利用网络带宽,在提高网络带宽利用率的同时减少文件夹的传输时间。
文档编号H04L29/08GK102469038SQ201010546070
公开日2012年5月23日 申请日期2010年11月15日 优先权日2010年11月15日
发明者白振国 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1