CN111198844B - 一种用于传输指定文件或目录结构的方法 - Google Patents

一种用于传输指定文件或目录结构的方法 Download PDF

Info

Publication number
CN111198844B
CN111198844B CN201911413186.2A CN201911413186A CN111198844B CN 111198844 B CN111198844 B CN 111198844B CN 201911413186 A CN201911413186 A CN 201911413186A CN 111198844 B CN111198844 B CN 111198844B
Authority
CN
China
Prior art keywords
file
directory
transmission
path
empty
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911413186.2A
Other languages
English (en)
Other versions
CN111198844A (zh
Inventor
林国彪
陈仲恒
徐莹莹
柯学
利驿飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Securities Communication Co ltd
Original Assignee
Shenzhen Securities Communication Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Securities Communication Co ltd filed Critical Shenzhen Securities Communication Co ltd
Priority to CN201911413186.2A priority Critical patent/CN111198844B/zh
Publication of CN111198844A publication Critical patent/CN111198844A/zh
Application granted granted Critical
Publication of CN111198844B publication Critical patent/CN111198844B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及计算机技术领域,具体涉及一种用于传输指定文件或目录结构的方法,步骤一:发送方使用者通过约定好的通知机制来告知文件传输客户端,一个指定目录需要发送给指定的对端地址;步骤二:发送方在文件客户端,将需要传输的指定目录及子目录整体打包合成一个打包文件;步骤三:将步骤二中的打包文件,进行压缩、校验处理,形成发送文件;步骤四,将步骤三中的发送文件发送给接收方;步骤五:接收方的客户端收到步骤四中的发送文件后,对其进行相应的解压缩、校验处理,恢复成与发送方一致的原有目录结构,放入约定好的接收路径中,完成传输;它具有极大地提高了使用效率、传输效率以及传输成功率等优点。

Description

一种用于传输指定文件或目录结构的方法
【技术领域】
本发明涉及计算机技术领域,具体涉及一种用于传输指定文件或目录结构的方法。
【背景技术】
目前,许多计算机软件程序提供了文件传输功能,其中部分软件程序在此功能基础上提供了文件目录传输功能。现有文件传输的常用方式是将文件分块传输,同时伴随有控制指令传输,用于进度控制、状态同步、数据重传、异常处理等等。
现有文件目录传输的常用模式:由发送方客户端程序将使用者指定的目录及子目录中的文件逐个传输到接收方客户端程序,待全部文件传输成功之后,将传输结果反馈给双方使用者,若有部分文件传输异常,需要尝试重传若干次,直到这些文件传输成功,或者达到设定的最大尝试次数错误停止。
上述模式需要建立多个文件传输任务,同时传输多个文件,计算机的总带宽有限,因此每个文件分得的带宽也有限,同时传输的文件任务越多,每个文件分得的带宽越低,当带宽低到一定程度后,传输的文件数据量/控制指令数据量的比值也越来越低,丢包率增加,传输效率相应降低,因此部分软件会限制最大可以同时传输的文件数量(例如百度云、迅雷等)。同时,每个文件任务伴随的大量控制指令也会额外占用带宽,因此这种模式传输文件目录的效率较低,只能适应于近距离的目录传输方式,不适合远距离目录传输;
另一方面,任何一个文件任务都可能出现传输异常的情况,当一个指定的文件目录中,含有多个文件时,传输这些文件,只要其中有一个文件传输出现异常,即会导致整个目录传输异常,因此通过这种模式传输文件目录,传输过程中发现的异常失败机率较高,整个传输效率较低。
另外,在一些情况下网络带宽资源非常珍贵,同时使用者对传输效率和传输成功率有高要求,例如金融机构间的专线环境文件传输应用场景。因此需要设计一种新的文件目录传输方式,节省不必要的带宽开销、提高传输效率和传输成功率。
【发明内容】
本发明的目的在于针对现有技术的缺陷和不足,提供一种用于传输指定文件或目录结构的方法。
本发明所述的一种用于传输指定文件或目录结构的方法,采用如下步骤:
步骤一:发送方使用者通过约定好的通知机制来告知文件传输客户端,一个指定目录需要发送给指定的对端地址;
步骤二:发送方在文件客户端,将需要传输的指定目录及子目录整体打包合成一个打包文件;
步骤三:将步骤二中的打包文件,进行压缩、校验处理,形成发送文件;
步骤四,将步骤三中的发送文件发送给接收方;
步骤五:接收方的客户端收到步骤四中的发送文件后,对其进行相应的解压缩、校验处理,之后对处理好的文件进行解包,形成解包文件,恢复成与发送方一致的原有目录结构,放入约定好的接收路径中,完成传输。
进一步地,步骤一中的通知机制实现,完成自动化传输,其采用如下步骤:
(1)通知机制的传输规则由以下要素组成:发送目录路径、对端地址、发送路径扫描方式、接收目录路径;
(2)建立发送标记文件:发送标记文件是某一类约定好的专用后缀名的文件;
(3)在每一个需要被发送的文件,都要有一个发送标记文件,在需要被发送的文件的文件名后面加上步骤(2)中的专用后缀名,形成标记文件;
(4)文件传输客户端利用其扫描发送路径的功能,当一个传输规则配置载入文件传输客户端之后,文件客户端会定时读取该发送目录中的全部文件,之后依次进行检查每个文件是否是发送标记文件;
如果是发送标记文件,则检查其指示的真正要发送的文件或目录,是否存在,若存在,则将其发送给传输规则中约定的对端用户;
(5)发送时,使用者可以将想要发送的文件或目录放入传输规则中约定的发送目录,之后对这个文件或目录创建一个标记文件,文件客户端通过扫描到发送标记文件,找到这个要发送的文件或目录,将其发送给指定的对端,实现自动化发送文件或目录。
进一步地,步骤二中打包文件的实现,采用如下步骤:
(3)通过常用的目录遍历算法遍历指定目录及子目录,得到全部文件和空的子目录信息,然后开始创建新的合成文件,首先写入文件头结构,该文件头结构由三个字段组成,该三个字段为:目录名称、文件数、空目录数;文件头结构是固定长度的,而且其中每个字段都是固定长度的;其中:目录名称是指需要传输的指定目录名;文件数是指定目录中包含的文件数量;空目录数是指定目录中包含的空子目录数量;
(4)在这个合成文件的尾部写入一定长度的预留空数据,用于预留存储每个文件的具体信息,每个文件具体信息的结构格式,该结构由五个字段,该五个字段为文件大小、最后修改时间、偏移量、相对文件路径、绝对文件路径;
其中:文件大小是指文件占用磁盘空间的大小;最后修改时间是指文件的“最后修改时间”属性;偏移量是指文件数据在合成文件中的开始位置,即其在合成文件的相对偏移量;相对文件路径是指文件在指定目录中的相对路径;绝对文件路径是指文件在发送方用户操作系统存储设备中的绝对路径;
其结构是固定长度的,而且其中每个序号都是固定长度的,设文件数为m,则预留的空数据总长度为m乘以该结构长度;在第一步遍历整个指定目录时,就得到每个文件除了“偏移量”字段以外的全部字段内容,此时“偏移量”字段尚未赋值,暂设为0,每个文件的具体信息结构按遍历顺序记录在内存中;
(3)再在这个合成文件尾部写入一定长度的预留空数据,用于预留存储每个空文件夹的具体信息;其结构是固定长度的,设空目录数为n,则预留的空数据总长度为n乘以该结构长度;在第一步遍历整个指定目录时,就得到了每个空目录的“目录相对路径”字段内容,每个空目录的具体信息结构按遍历顺序记录在内存中;
(4)按内存中记录的每一个文件具体信息结构中的“绝对文件路径”,读取到指定目录中的每一个文件,写入到这个合成文件的尾部,同时记录每一个文件对应数据的第一个字节在合成文件中的相对位置,将该位置值写入到内存中对应文件具体信息结构中的“偏移量”字段;
(5)在文件头后,即预留空数据的开始位置,依次将内存中记录的每个文件具体信息结构写入到合成文件中,之后再依次将内存中记录的每个空目录具体信息结构写入到合成文件中;将一个指定目录中的所有文件和子目录结构打包合并成了一个打包文件。
进一步地,步骤五中的解包文件的实现,采用如下步骤:
(1)从合成文件的头部读取出文件头结构,得知指定目录名、文件数量m、空目录数量n,之后在接收路径下创建与指定目录名同名的目录;
(2)继续读取这个合成文件,读取m次,读取出m个文件具体信息结构,记录到内存,再读取n次,读取出n个空目录具体信息结构,记录到内存;
(3)按照m个文件具体信息结构中的“偏移量”和“文件大小”,依次读取出每一个文件,再根据“相对文件路径”,写入到接收路径下,第一步时创建的目录中,写入成功后将其“最后修改时间”属性更新为文件具体信息结构中记录的“最后修改时间”;
(4)按照n个文件具体信息结构中的“目录相对路径”字段,依次在接收路径下,第一步时创建的目录中创建空目录。
本发明有益效果为:本发明所述的一种用于传输指定文件或目录结构的方法,它采用打包和解压的传输,支持通过程序自动化对接发送文件,它具有极大地提高了使用效率、传输效率以及传输成功率等优点。
【附图说明】
此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:
图1是本发明拓扑示意图;
【具体实施方式】
下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。
如图1所示,本具体实施方式所述的一种用于传输指定文件或目录结构的方法,采用如下步骤:
步骤一:发送方使用者通过约定好的通知机制来告知文件传输客户端,一个指定目录需要发送给指定的对端地址;
步骤二:发送方在文件客户端,将需要传输的指定目录及子目录整体打包合成一个打包文件;
步骤三:将步骤二中的打包文件,进行压缩、校验处理,形成发送文件;
步骤四,将步骤三中的发送文件发送给接收方;
步骤五:接收方的客户端收到步骤四中的发送文件后,对其进行相应的解压缩、校验处理,之后对处理好的文件进行解包,形成解包文件,恢复成与发送方一致的原有目录结构,放入约定好的接收路径中,完成传输。
进一步地,步骤一中的通知机制实现,完成自动化传输,其采用如下步骤:
(1)通知机制的传输规则由以下要素组成:发送目录路径、对端地址、发送路径扫描方式、接收目录路径;
(2)建立发送标记文件:发送标记文件是某一类约定好的专用后缀名的文件;
(3)在每一个需要被发送的文件,都要有一个发送标记文件,在需要被发送的文件的文件名后面加上步骤(2)中的专用后缀名,形成标记文件;
(4)文件传输客户端利用其扫描发送路径的功能,当一个传输规则配置载入文件传输客户端之后,文件客户端会定时读取该发送目录中的全部文件,之后依次进行检查每个文件是否是发送标记文件;
如果是发送标记文件,则检查其指示的真正要发送的文件或目录,是否存在,若存在,则将其发送给传输规则中约定的对端用户;
(5)发送时,使用者可以将想要发送的文件或目录放入传输规则中约定的发送目录,之后对这个文件或目录创建一个标记文件,文件客户端通过扫描到发送标记文件,找到这个要发送的文件或目录,将其发送给指定的对端,实现自动化发送文件或目录。
进一步地,步骤二中打包文件的实现,采用如下步骤:
(5)通过常用的目录遍历算法遍历指定目录及子目录,得到全部文件和空的子目录信息,然后开始创建新的合成文件,首先写入文件头结构,该文件头结构由三个字段组成,该三个字段为:目录名称、文件数、空目录数;文件头结构是固定长度的,而且其中每个字段都是固定长度的;其中:目录名称是指需要传输的指定目录名;文件数是指定目录中包含的文件数量;空目录数是指定目录中包含的空子目录数量;
(6)在这个合成文件的尾部写入一定长度的预留空数据,用于预留存储每个文件的具体信息,每个文件具体信息的结构格式,该结构由五个字段,该五个字段为文件大小、最后修改时间、偏移量、相对文件路径、绝对文件路径;
其中:文件大小是指文件占用磁盘空间的大小;最后修改时间是指文件的“最后修改时间”属性;偏移量是指文件数据在合成文件中的开始位置,即其在合成文件的相对偏移量;相对文件路径是指文件在指定目录中的相对路径;绝对文件路径是指文件在发送方用户操作系统存储设备中的绝对路径;
其结构是固定长度的,而且其中每个序号都是固定长度的,设文件数为m,则预留的空数据总长度为m乘以该结构长度;在第一步遍历整个指定目录时,就得到每个文件除了“偏移量”字段以外的全部字段内容,此时“偏移量”字段尚未赋值,暂设为0,每个文件的具体信息结构按遍历顺序记录在内存中;
(3)再在这个合成文件尾部写入一定长度的预留空数据,用于预留存储每个空文件夹的具体信息;其结构是固定长度的,设空目录数为n,则预留的空数据总长度为n乘以该结构长度;在第一步遍历整个指定目录时,就得到了每个空目录的“目录相对路径”字段内容,每个空目录的具体信息结构按遍历顺序记录在内存中;
(4)按内存中记录的每一个文件具体信息结构中的“绝对文件路径”,读取到指定目录中的每一个文件,写入到这个合成文件的尾部,同时记录每一个文件对应数据的第一个字节在合成文件中的相对位置,将该位置值写入到内存中对应文件具体信息结构中的“偏移量”字段;
(5)在文件头后,即预留空数据的开始位置,依次将内存中记录的每个文件具体信息结构写入到合成文件中,之后再依次将内存中记录的每个空目录具体信息结构写入到合成文件中;将一个指定目录中的所有文件和子目录结构打包合并成了一个打包文件。
进一步地,步骤五中的解包文件的实现,采用如下步骤:
(1)从合成文件的头部读取出文件头结构,得知指定目录名、文件数量m、空目录数量n,之后在接收路径下创建与指定目录名同名的目录;
(2)继续读取这个合成文件,读取m次,读取出m个文件具体信息结构,记录到内存,再读取n次,读取出n个空目录具体信息结构,记录到内存;
(3)按照m个文件具体信息结构中的“偏移量”和“文件大小”,依次读取出每一个文件,再根据“相对文件路径”,写入到接收路径下,第一步时创建的目录中,写入成功后将其“最后修改时间”属性更新为文件具体信息结构中记录的“最后修改时间”;
(4)按照n个文件具体信息结构中的“目录相对路径”字段,依次在接收路径下,第一步时创建的目录中创建空目录。
本发明的工作原理如下:
一、本专利的整体方案,传输一个指定目录的过程如下:发送方使用者通过约定好的通知机制(该通知机制为自动化传输机制)来告知文件传输客户端,一个指定目录需要发送给指定的对端地址,文件客户端会将需要传输的指定目录及子目录整体打包合成一个文件,对该文件进行压缩、校验处理,再将处理好的文件发送给接收方,接收方的客户端收到该文件后,对其进行相应的解压缩、校验处理,之后对处理好的文件进行解包,恢复成与发送方一致的原有目录结构,放入约定好的接收路径中,这样,一个指定的目录结构就传输成功了。如果是传输一个指定文件,过程也是大体一样,只不过省略了其中的打包和解包环境。
二、将指定目录结构打包合并成一个文件的过程分为以下五步:
第一步:通过常用的目录遍历算法遍历指定目录及子目录,得到全部文件和空的子目录信息;之后开始创建新的合成文件,首先写入文件头结构,格式如下:
字段序号 内容
1 目录名称 需要传输的指定目录名
2 文件数 指定目录中包含的文件数量
3 空目录数 指定目录中包含的空子目录数量
文件头结构是固定长度的,而且其中每个字段都是固定长度的;
第二步:在这个合成文件的尾部写入一定长度的预留空数据,用于预留存储每个文件的具体信息,每个文件具体信息的结构格式如下:
该结构是固定长度的,而且其中每个序号都是固定长度的,设文件数为m,则预留的空数据总长度为m乘以该结构长度。
在第一步遍历整个指定目录时,就得到每个文件除了“偏移量”字段以外的全部字段内容,此时“偏移量”字段尚未赋值,暂设为0,每个文件的具体信息结构按遍历顺序记录在内存中。
第三步:再在这个合成文件尾部写入一定长度的预留空数据,用于预留存储每个空文件夹的具体信息,每个空目录具体信息的结构格式如下:
字段序号 内容
1 目录相对路径 该空目录在指定目录中的相对路径
结构是固定长度的,设空目录数为n,则预留的空数据总长度为n乘以该结构长度。在第一步遍历整个指定目录时,就得到了每个空目录的“目录相对路径”字段内容,每个空目录的具体信息结构按遍历顺序记录在内存中。
第四步:按内存中记录的每一个文件具体信息结构中的“绝对文件路径”,读取到指定目录中的每一个文件,写入到这个合成文件的尾部,同时记录每一个文件对应数据的第一个字节在合成文件中的相对位置,将该位置值写入到内存中对应文件具体信息结构中的“偏移量”字段;
第五步:在文件头后,即预留空数据的开始位置,依次将内存中记录的每个文件具体信息结构写入到合成文件中,之后再依次将内存中记录的每个空目录具体信息结构写入到合成文件中;
经过以上五步,就将一个指定目录中的所有文件和子目录结构打包合并成了一个文件。
三、将文件解包恢复成原始目录结构的过程分为以下四步:
第一步:从合成文件的头部读取出文件头结构,得知指定目录名、文件数量m、空目录数量n,之后在接收路径下创建与指定目录名同名的目录;
第二步:继续读取这个合成文件,读取m次,读取出m个文件具体信息结构,记录到内存,再读取n次,读取出n个空目录具体信息结构,记录到内存;
第三步:按照m个文件具体信息结构中的“偏移量”和“文件大小”,依次读取出每一个文件,再根据“相对文件路径”,写入到接收路径下,第一步时创建的目录中,写入成功后将其“最后修改时间”属性更新为文件具体信息结构中记录的“最后修改时间”;
第四步:按照n个文件具体信息结构中的“目录相对路径”字段,依次在接收路径下,第一步时创建的目录中创建空目录;经过以上四步,就将合并文件解包恢复成了原始的目录结构。
五、通知机制为自动化机制,形成传输规则。自动化传输指定文件或目录的机制。通过一种配置将文件或目录的发送路径、接收路径与对端地址信息关联,该配置称为传输规则;传输规则包含以下要素:发送目录路径、对端地址、发送路径扫描方式、接收目录路径;代表某个目录路径下的文件是要发送给某个对端地址,从某个对端用户发过来的文件放到某个指定接收目录。
为了实现自动化发送文件,创建发送标记文件,发送标记文件是某一类特殊后缀名的文件,例如约定后缀名为“.ok”的文件是发送标记文件;
自动化发送文件时,每一个需要被发送的文件,都要有一个发送标记文件,在需要被发送的文件的文件名后面加上“.ok”后缀,就是其对应的标记文件的文件名,例如a.txt的标记文件为a.txt.ok,a.txt.ok标记文件的作用是告知文件客户端,a.txt文件需要被发送出去。
为了让文件传输客户端能够识别标记文件,文件传输客户端需要增加扫描发送路径的功能,当一个传输规则配置载入文件传输客户端之后,文件客户端会定时读取该发送目录中的全部文件,之后依次进行检查每个文件是否是发送标记文件(后缀名是否为“.ok”),如果是发送标记文件,则检查其指示的真正要发送的文件或目录(发送标记文件的文件名尾部去掉“.ok”之后剩下的文件名)是否存在,若存在,则将其发送给传输规则中约定的对端用户。
发送时,使用者可以将想要发送的文件或目录放入传输规则中约定的发送目录,之后对这个文件或目录创建一个标记文件,文件客户端通过扫描到发送标记文件,找到这个要发送的文件或目录,将其发送给指定的对端,以上描述的,发送文件或目录的全过程。
使用者不需要操作文件客户端的图形界面,而且将文件或目录放入指定发送目录的动作、生成ok标记的动作,都可以很容易由用户编写其他计算机程序或脚本自动化实现,所以说,发送过程是自动化的。
上述的通知机制(自动化机制)同样实现了自动化接收文件,接收方通过设置传输规则的接收路径,将接收路径与对端地址信息关联,文件传输客户端装载了这个传输规则配置后,当接收方客户端收到一个对端地址发来的文件或目录,就可以自动化的将其放到配置好的接收目录中。因此文件或目录的发送和接收过程都可以实现自动化。
本发明中,通过传输规则,将文件目录的发送路径与对端地址信息关联,例如某个目录路径下的文件是要发送给某个对端的,使用者可以通过将文件和目录放入约定的目录,将其发送给指定的对端。使用者将需要发送的文件和目录放到传输规则指定的发送路径中,传输程序根据传输规则去定时扫描该路径,发现路径中有等待发送的文件和目录,就将其发送给传输规则指定的对端,这种使用方式就可以令使用者不需要操作图形界面,而是通过将文件或目录放置到发送目录以及创建标记文件等操作自动化完成文件传输。
发送方的传输程序通过扫描发送路径获知发送路径中有需要发送的文件和目录。
其扫描方式有设定时间点扫描和按间隔时间扫描两种;第一种方式是指到达设定时间点时,程序检查发送路径中是否有文件和目录,若有则将其发送,第二种方式是指按照设定的时间间隔(例如1秒)循环检查发送路径中是否有需要发送的文件和目录,若有则发送,这种方式需要一个发送通知机制,使用者通过这种发送标记机制,告知文件传输程序,哪个文件或者目录准备好可以发送了。
本发明所使用的发送通知机制如下,再举实例来进一步说明:以发送路径是C:\send为例,如果需要发送的文件目录是C:\send\example,那么使用者需要生成一个发送标记文件,发送标记文件是指能够表示某文件目录或文件需要发送的另一个文件,以文件名后缀作为特征,例如“.ok”后缀。
举例来说,C:\send\example.ok可以用来表示example目录是需要发送的,而C:\send\example.txt.ok可以用来说明C:\send\example.txt文件是需要发送的。
所以当使用者需要发送C:\send\example目录时,要在发送路径C:\send\下创建一个example.ok文件,文件传输程序检查到这个ok文件,就会去找对应的C:\send\example目录,若存在,则将其发送出去。
接收方同样也可以通过配置传输规则中的接收路径,将接收路径与对端地址信息关联,这样收到来自某个对端地址信息的文件和目录,就由传输程序自动放到传输规则中设定好的接收路径下。
本发明中的文件传输软件的定义:具备“将一个文件从网络一端的计算机传输到另一端计算机”功能的一套软件程序,包括发送方文件传输客户端和接收方文件传输客户端,发送方能够将单个计算机文件通过网络连接传输给指定接收方的客户端,发送方文件传输客户端在发送文件之前会对文件进行计算校验值(通过CRC32、MD5等算法),之后进行压缩(BZ2等算法),以节省网络带宽,接收方文件传输客户端在收之后会对文件进行解压缩,之后计算校验值,与发送时计算的校验值一致,则文件发送成功,目前市场有很多此类软件产品,例如深圳证券通信有限公司的FDEP文件传输系统客户端程序。
本发明优化了文件目录传输过程,将指定目录中的文件和子目录结构,打包合并成一个文件,再对其压缩之后进行发送,将原本多个文件和子目录结构的传输过程简化为一个小体积文件的传输过程,提高传输效率和传输成功率,同时支持程序自动化对接,提高了使用效率。主要有以下四点有较大的有益效果:
1.提高使用效率,本专利支持通过程序自动化对接发送文件,相比以往的通过手动在程序图形界面上操作收发文件方式,提高了使用效率。
2.提高传输效率:每个文件的传输都会产生一系列应用层控制指令,用以控制文件传输的进度,这些指令本身的数据量,会占用线路带宽。将多个文件的传输过程简化为一个文件的传输过程,可以节省应用层控制指令数量,从而减少传输文件所需的额外数据量,节省其占用的线路带宽,提高传输效率。另一方面,由于合并后的文件经过了压缩处理再传输,节省了数据传输量,因此也可以提高传输效率,具体提高效率程度与所传文件的压缩比有关。
3.提高传输成功率:每一个文件的传输过程因网络异常等原因,可能出现传输异常的情况。传输一个指定目录,相当于依次或同时传输目录中包含的多个文件,若其中某个文件传输异常,则可以视作整个目录传输异常;而本专利将这些文件打包合并成一个文件,压缩后开始传输,相当于将传输多个文件的任务简化为传输一个文件,因此可以提高传输成功率。
4.使用者对文件目录打包解包过程无感知:发送方客户端自动将指定目录中的文件和子目录结构打包合并成一个文件,压缩后发送出去,该文件送达接收方后,接收方客户端会自动对文件进行解压缩和分解,恢复成原本的目录结构,内部实现细节对双方使用者来说是无感知的,双方使用者仍可认为是指定目录中的每一个文件分别在传输。
以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。

Claims (2)

1.一种用于传输指定文件或目录结构的方法,采用如下步骤:
步骤一:发送方使用者通过约定好的通知机制来告知文件传输客户端,一个指定目录需要发送给指定的对端地址;
步骤二:发送方在文件客户端,将需要传输的指定目录及子目录整体打包合成一个打包文件;
步骤三:将步骤二中的打包文件,进行压缩、校验处理,形成发送文件;
步骤四,将步骤三中的发送文件发送给接收方;
步骤五:接收方的客户端收到步骤四中的发送文件后,对其进行相应的解压缩、校验处理,之后对处理好的文件进行解包,形成解包文件,恢复成与发送方一致的原有目录结构,放入约定好的接收路径中,完成传输;
其特征在于:步骤二中打包文件的实现,采用如下步骤:
(1)通过常用的目录遍历算法遍历指定目录及子目录,得到全部文件和空的子目录信息,然后开始创建新的合成文件,首先写入文件头结构,该文件头结构由三个字段组成,该三个字段为:目录名称、文件数、空目录数;文件头结构是固定长度的,而且其中每个字段都是固定长度的;其中:目录名称是指需要传输的指定目录名;文件数是指定目录中包含的文件数量;空目录数是指定目录中包含的空子目录数量;
(2)在这个合成文件的尾部写入一定长度的预留空数据,用于预留存储每个文件的具体信息,每个文件具体信息的结构格式,该结构有五个字段,该五个字段为文件大小、最后修改时间、偏移量、相对文件路径、绝对文件路径;
其中:文件大小是指文件占用磁盘空间的大小;最后修改时间是指文件的“最后修改时间”属性;偏移量是指文件数据在合成文件中的开始位置,即其在合成文件的相对偏移量;相对文件路径是指文件在指定目录中的相对路径;绝对文件路径是指文件在发送方用户操作系统存储设备中的绝对路径;
其结构是固定长度的,而且其中每个序号都是固定长度的,设文件数为m,则预留的空数据总长度为m乘以该结构长度;在第一步遍历整个指定目录时,就得到每个文件除了“偏移量”字段以外的全部字段内容,此时“偏移量”字段尚未赋值,暂设为0,每个文件的具体信息结构按遍历顺序记录在内存中;
(3)再在这个合成文件尾部写入一定长度的预留空数据,用于预留存储每个空文件夹的具体信息;其结构是固定长度的,设空目录数为n,则预留的空数据总长度为n乘以该结构长度;在第一步遍历整个指定目录时,就得到了每个空目录的“目录相对路径”字段内容,每个空目录的具体信息结构按遍历顺序记录在内存中;
(4)按内存中记录的每一个文件具体信息结构中的“绝对文件路径”,读取到指定目录中的每一个文件,写入到这个合成文件的尾部,同时记录每一个文件对应数据的第一个字节在合成文件中的相对位置,将该位置值写入到内存中对应文件具体信息结构中的“偏移量”字段;
(5)在文件头后,即预留空数据的开始位置,依次将内存中记录的每个文件具体信息结构写入到合成文件中,之后再依次将内存中记录的每个空目录具体信息结构写入到合成文件中;将一个指定目录中的所有文件和子目录结构打包合并成了一个打包文件;
步骤五中的解包文件的实现,采用如下步骤:
(1)从合成文件的头部读取出文件头结构,得知指定目录名、文件数量m、空目录数量n,之后在接收路径下创建与指定目录名同名的目录;
(2)继续读取这个合成文件,读取m次,读取出m个文件具体信息结构,记录到内存,再读取n次,读取出n个空目录具体信息结构,记录到内存;
(3)按照m个文件具体信息结构中的“偏移量”和“文件大小”,依次读取出每一个文件,再根据“相对文件路径”,写入到接收路径下,第一步时创建的目录中,写入成功后将其“最后修改时间”属性更新为文件具体信息结构中记录的“最后修改时间”;
(4)按照n个文件具体信息结构中的“目录相对路径”字段,依次在接收路径下,第一步时创建的目录中创建空目录。
2.根据权利要求1所述的一种用于传输指定文件或目录结构的方法,其特征在于:步骤一中的通知机制实现,完成自动化传输,采用如下步骤:
(1)通知机制的传输规则由以下要素组成:发送目录路径、对端地址、发送路径扫描方式、接收目录路径;
(2)建立发送标记文件:发送标记文件是某一类约定好的专用后缀名的文件;
(3)在每一个需要被发送的文件,都要有一个发送标记文件,在需要被发送的文件的文件名后面加上步骤(2)中的专用后缀名,形成标记文件;
(4)文件传输客户端利用其扫描发送路径的功能,当一个传输规则配置载入文件传输客户端之后,文件客户端会定时读取该发送目录中的全部文件,之后依次进行检查每个文件是否是发送标记文件;
如果是发送标记文件,则检查其指示的真正要发送的文件或目录,是否存在,若存在,则将其发送给传输规则中约定的对端用户;
(5)发送时,使用者可以将想要发送的文件或目录放入传输规则中约定的发送目录,之后对这个文件或目录创建一个标记文件,文件客户端通过扫描到发送标记文件,找到这个要发送的文件或目录,将其发送给指定的对端,实现自动化发送文件或目录。
CN201911413186.2A 2019-12-31 2019-12-31 一种用于传输指定文件或目录结构的方法 Active CN111198844B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911413186.2A CN111198844B (zh) 2019-12-31 2019-12-31 一种用于传输指定文件或目录结构的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911413186.2A CN111198844B (zh) 2019-12-31 2019-12-31 一种用于传输指定文件或目录结构的方法

Publications (2)

Publication Number Publication Date
CN111198844A CN111198844A (zh) 2020-05-26
CN111198844B true CN111198844B (zh) 2023-07-28

Family

ID=70746188

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911413186.2A Active CN111198844B (zh) 2019-12-31 2019-12-31 一种用于传输指定文件或目录结构的方法

Country Status (1)

Country Link
CN (1) CN111198844B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101420324A (zh) * 2008-10-10 2009-04-29 中兴通讯股份有限公司 一种网管系统及其代理软件的版本更新方法
CN102025515A (zh) * 2009-09-14 2011-04-20 阿里巴巴集团控股有限公司 基于文件目录的文件传输方法及其装置和系统
CN102855236A (zh) * 2011-06-27 2013-01-02 北京东方通科技股份有限公司 文件传输系统及文件传输方法
CN109309730A (zh) * 2018-10-31 2019-02-05 北京国信宏数科技有限责任公司 一种可信的文件传输方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101420324A (zh) * 2008-10-10 2009-04-29 中兴通讯股份有限公司 一种网管系统及其代理软件的版本更新方法
CN102025515A (zh) * 2009-09-14 2011-04-20 阿里巴巴集团控股有限公司 基于文件目录的文件传输方法及其装置和系统
CN102855236A (zh) * 2011-06-27 2013-01-02 北京东方通科技股份有限公司 文件传输系统及文件传输方法
CN109309730A (zh) * 2018-10-31 2019-02-05 北京国信宏数科技有限责任公司 一种可信的文件传输方法和系统

Also Published As

Publication number Publication date
CN111198844A (zh) 2020-05-26

Similar Documents

Publication Publication Date Title
US6279041B1 (en) Methods, systems and computer program products for differencing data communications using a message queue
CN102355426B (zh) 实现离线文件传输的方法和系统
CN107948334B (zh) 基于分布式存储系统的数据处理方法
CN101009516B (zh) 一种进行数据同步的方法、系统及装置
CN102014150B (zh) 一种基于udp分布式小文件存储系统及其数据处理方法
US6956853B1 (en) Receive processing with network protocol bypass
CN101682634B (zh) 用于基于事务的通信的文件协议
US7577896B2 (en) Apparatus and method for performing cyclic redundancy check (CRC) on partial protocol data units (PDUS)
CN103095795B (zh) 用于传输数据的设备和方法
US8930476B2 (en) Instant messaging (IM) file folder transmission method and system
WO2020019943A1 (zh) 发送数据的方法和装置,以及接收数据的方法和装置
CN106170968B (zh) 一种数据压缩存储方法、装置,及分布式文件系统
KR20100012896A (ko) 멀티플렉싱된 데이터 스트림 프로토콜
CN106453474A (zh) 在不稳定网络环境中的大文件的网络传输
CN103944744A (zh) 日志采集方法和系统
CN104580158A (zh) 一种分布式平台文件与内容分发方法及系统
CN111314480B (zh) 负载自适应跨平台文件传输协议分布式服务实现方法
CN101197773B (zh) 基于多链路的报文压缩发送和接收解压缩方法及系统
US20160092131A1 (en) Storage system, storage system control method, and recording medium storing virtual tape device control program
JP2013504806A (ja) ファイルディレクトリに基づいたファイルの転送のための方法、装置、およびシステム
US20140129529A1 (en) Storing Data Files in a File System
WO2017097106A1 (zh) 一种文件差量的传输方法以及装置
CN111198844B (zh) 一种用于传输指定文件或目录结构的方法
CN114676135A (zh) 数据存储方法、可读介质和电子设备
CN101867559B (zh) 在即时通信和网络存储系统中进行文件压缩的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant