一种数据文件检测方法和装置与流程

文档序号:11216320
一种数据文件检测方法和装置与流程

本发明涉及数据传输领域的数据同步技术,尤其涉及一种数据文件检测方法和装置。



背景技术:

音乐公司各系统之间经常会使用到数据同步的操作,在数据同步过程中通常需要大数据量的同步或数据交互,一般使用文件传输协议(FTP,File Transfer Protocol)进行文本数据同步。很多时候同步的数据量比较大,同时同步规范又常常限制一个同步文件中的最大记录数,这就造成生成的同步文件个数可能是多个,因此,需要在同步过程中稽核文件是否全部同步完成而没有遗漏。

现有技术中,生成FTP同步数据文件时缺少对应的跳号检查机制,造成一些文件名称生成造成跳号,例如:1004_channal_001,1004_channal_002,1004_channal_004。因此,亟需检测方法来检查在生成同步数据文件是否完整。



技术实现要素:

为解决上述技术问题,本发明实施例提供一种数据文件检测方法和装置,可以在生成数据同步过程中检测数据文件是否生成完整。

本发明的技术方案是这样实现的:

本发明实施例提供一种数据文件检测方法,所述方法包括:

将数据文件存储在预设数组中;

如果所述数据文件包含子文件,确定所述数据文件的子文件中数据的长度;

如果所述数据文件不包含子文件,确定所述数据文件中数据的长度;

根据所述数据的长度确定所述数据文件是否存在跳号。

进一步地,所述将数据文件存储在预设数组中,具体为:

如果数据文件不包含子文件,将所述数据文件存储至预设数组中;

如果所述数据文件包含子文件,将所述数据文件的子文件存储至所述预设数组的子数组中。

进一步地,所述将数据文件存储至预设数组中,具体为:获取所述数据文件的文件序号;根据所述数据文件的文件序号,确定所述数据文件在所述预设数组中的存储序号;将所述数据文件存储在所述预设数组的所述存储序号对应的位置;

所述将数据文件的子文件存储至所述预设数组的子数组中,具体为:获取所述数据文件的文件序号和子文件序号;根据所述数据文件的文件序号,确定所述数据文件在所述预设数组中的第一存储序号;根据所述子文件序号,确定所述子文件在所述预设数组的第一存储序号的子数组中的第二存储序号,将所述子文件存储在所述预设数组的所述第二存储序号对应的位置。

进一步地,在所述将多个数据文件存储在预设数组中之前,进一步包括:

生成数据文件;或者,

接收数据文件。

进一步地,所述根据所述数据的长度确定所述数据文件是否存在跳号,具体为:

如果所述数据的长度为0,确定所述数据文件存在跳号;

如果所述数据的长度不为0,确定所述数据文件没有跳号。

本发明实施例提供一种数据文件检测装置,所述装置包括:存储模块、第一确定模块、第二确定模块和第三确定模块,其中,

所述存储模块,用于将数据文件存储在预设数组中;

所述第一确定模块,用于如果所述数据文件包含子文件,确定所述数据文件的子文件中数据的长度;

所述第二确定模块,用于如果所述数据文件不包含子文件,确定所述数据文件中数据的长度;

所述第三确定模块,用于根据所述数据的长度确定所述数据文件是否存在 跳号。

进一步地,所述存储模块具体用于如果数据文件不包含子文件,将所述数据文件存储至预设数组中;如果所述数据文件包含子文件,将所述数据文件的子文件存储至所述预设数组的子数组中。

进一步地,所述存储模块具体包括:

第一获取单元,用于获取所述数据文件的文件序号;

第一确定单元,用于根据所述数据文件的文件序号,确定所述数据文件在所述预设数组中的存储序号;

第一存储单元,用于将所述数据文件存储在所述预设数组的所述存储序号对应的位置;

第二获取单元,用于获取所述数据文件的文件序号和子文件序号;

第二确定单元,用于根据所述数据文件的文件序号,确定所述数据文件在所述预设数组中的第一存储序号;还用于根据所述子文件序号,确定所述子文件在所述预设数组的第一存储序号的子数组中的第二存储序号;

第二存储单元,用于将所述子文件存储在所述预设数组的所述第二存储序号对应的位置。

进一步地,所述装置还包括:

生成模块,用于在所述将多个数据文件存储在预设数组中之前,生成数据文件;或者,

接收模块,用于在所述将多个数据文件存储在预设数组中之前,接收数据文件。

进一步地,所述第三确定模块具体用于如果所述数据的长度为0,确定所述数据文件存在跳号;如果所述数据的长度不为0,确定所述数据文件没有跳号。

本发明实施例提供了一种数据文件检测方法和装置,将数据文件存储在预设数组中;如果所述数据文件包含子文件,确定所述数据文件的子文件中数据的长度;如果所述数据文件不包含子文件,确定所述数据文件中数据的长度; 根据所述数据的长度确定所述数据文件是否存在跳号。本发明实施例提供的数据文件检测方法和装置,可以在数据同步过程中检测数据文件是否存在跳号,避免了数据文件的重复统计,也能及时发现漏传或者生成数据文件异常等问题,为稽核数据文件提供了很大的便利。

附图说明

图1为本发明实施例提供的数据文件检测方法流程示意图一;

图2为本发明实施例提供的数据文件检测方法流程示意图二;

图3为本发明实施例提供的数据文件检测方法流程示意图三;

图4为本发明实施例提供的数据文件检测装置结构示意图一;

图5为本发明实施例提供的数据文件检测装置结构示意图二;

图6为本发明实施例提供的数据文件检测装置结构示意图三。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

实施例一

本发明实施例提供一种数据文件检测方法,如图1所示,该方法可以包括:

步骤101、将数据文件存储在预设数组中。

在同步数据文件过程中,由于各种原因的影响同步的数据文件不完整,即同步的数据文件的文件序号产生跳号,例如,生成同步数据文件时,可能在生成某个同步数据文件时,突然出现断电等意外情况,导致该同步数据文件没有成功生成,没有该同步数据文件,也就相应的没有该数据文件的文件名,但底层数据存储已经计数,数组中已经为该文件记录,由于没有成功生成,所以虽然已经计数,但文件的内容为空;接收同步数据文件时,可能在传输过程中出现传输故障等导致数据包丢失,没有成功接收到数据文件,导致底层虽然已经计数,但数据文件内容为空。

具体的,本发明实施例可以确定所述数据文件是否包含子文件,如果数据文件不包含子文件,获取所述数据文件的文件序号;根据所述数据文件的文件序号,确定所述数据文件在所述预设数组中的存储序号;将所述数据文件存储在所述预设数组的所述存储序号对应的位置;

如果所述数据文件包含子文件,获取所述数据文件的文件序号和子文件序号;根据所述数据文件的文件序号,确定所述数据文件在所述预设数组中的第一存储序号;根据所述子文件序号,确定所述子文件在所述预设数组的第一存储序号的子数组中的第二存储序号,将所述子文件存储在所述预设数组的所述第二存储序号对应的位置。

本发明实施例中的预设数组可以为Farray数据结构,获取所述数据文件的文件序号依照文件序号放入Farray结构的parF成员的对应的数组位置,如果有文件子序号,获取所述子文件序号,即文件子序号不为0,依照子文件序号存储在sfar,sfar为SubFarray的简称。存储的时候要检测对应位置字符串长度是否为0,如果不为0,则代表数据文件有传输重复的存在,具体的,数据文件的文件名在该Farray数据结构中的存储如表1所示:

表1数据文件的文件名及其在数组中对应的存储位置

如表1所示,将NIG_20150930.0001存储到parF[0],由于不存在下一级文 件,即不包含子文件,因此subflag为0;将NIG_20150930.0002存储到parF[1],由于不存在下一级文件,因此subflag为0;将NIG_20150930.0004存储到parF[3],由于不存在下一级文件,因此subflag为0。

数据文件NIG_20150930.0003的数据量较大,受到同步文件最大记录数的限制,因此,将NIG_20150930.0003拆分成NIG_20150930.0003.001和NIG_20150930.0003.002这两个同步子文件;在parF[2]记录NIG_20150930.0003,但并不存在NIG_20150930.0003这个文件名,由于NIG_20150930.0003存在下一级文件,即包含子文件,因此subflag为1;将NIG_20150930.0003.001存储至parF[2].subfname[0];将NIG_20150930.0003.002存储至parF[2].subfname[1]。

步骤102、如果所述数据文件包含子文件,确定所述数据文件的子文件中数据的长度。

具体的,数据文件检测装置遍历所述预设数组,遍历是指对所述预设数组中的每一个文件进行判断,确定所述预设数组中的数据文件是否包含子文件。

示例性的,如表1所示,遍历parF数组,通过数据文件对应的subflag的取值可以确定数据文件是否包含子文件。如果所述数据文件包含子文件,数据文件检测装置确定所述数据文件的子文件中数据的长度。

步骤103、如果所述数据文件不包含子文件,确定所述数据文件中数据的长度。

示例性的,如表1所示,数据文件NIG_20150930.0001的subflag为0,可以确定该数据文件不包含子文件,需要判断数据文件NIG_20150930.0001中的数据成员的长度。

需要说明的是,本发明对步骤102和步骤103之间的顺序并不做限制,既可以先执行步骤102、再执行步骤103,也可以先执行步骤103、再执行步骤102,还可以同时执行步骤102和步骤103。

步骤104、根据所述数据的长度确定所述数据文件是否存在跳号。

具体的,当所述数据文件中数据的长度为0时,数据文件检测装置确定所 述数据文件存在跳号;当所述数据文件中数据的长度不为0时,数据文件检测装置确定所述数据文件没有跳号。

示例性的,如表1所示,数据文件检测装置判断数据文件NIG_20150930.0001中的数据成员的长度是否为0,如果为0则说明该数据文件为空,出现跳号,如果不为0,则可以确定该数据文件正确存储,没有跳号。

本发明实施例提供的数据文件检测方法,可以在数据同步过程中检测数据文件是否存在跳号,避免了数据文件的重复统计,也能及时发现漏传或者生成数据文件异常等问题,为稽核数据文件提供了很大的便利。

实施例二

本发明实施例提供一种数据文件检测方法,如图2所示,该方法可以包括:

步骤201、生成数据文件。

需要说明的是,本发明实施例提供的数据文件检测方法可以应用在生成数据文件时对生成数据文件的检测,也可以应用在接收数据文件时对接收的数据文件的检测。

步骤202、如果数据文件不包含子文件,获取所述数据文件的文件序号;根据所述数据文件的文件序号,确定所述数据文件在所述预设数组中的存储序号;将所述数据文件存储在所述预设数组的所述存储序号对应的位置。

具体的,数据文件检测装置确定所述数据文件是否包含子文件,如果数据文件不包含子文件,数据文件检测装置获取所述数据文件的文件序号,将所述数据文件的文件序号减一,确定所述数据文件在所述预设数组中的存储序号。

示例性的,数据文件检测装置获取数据文件的文件序号,依照文件序号放入Farray结构的parF成员的对应的数组位置,如实施例一中的表1所示,数据文件的文件名在存储在预设数组时,采用数据文件的文件序号减去“1”对应的数组位置存放该文件名,例如,数据文件NIG_20150930.0001对应的序号为“0001”,取整则为“1”,那么该数据文件对应的存放位置为a1.parF[0],数据文件的子文件名也采用上述同样的规则。即使数据文件的传输不是按照正常的增序,例如,1、2、3这样的顺序,只要按照文件名序号减“1”进行存储,当 某一个文件缺少时,可以快速的发现数据文件跳号。

步骤203、确定所述数据文件中数据的长度。

步骤204、如果所述数据的长度为0,确定所述数据文件存在跳号。

步骤205、如果所述数据的长度不为0,确定所述数据文件没有跳号。

示例性的,如实施例一中表1所示,数据文件NIG_20150930.0002的subflag为0,则判断NIG_20150930.0002的数据成员的长度,如果NIG_20150930.0002的数据成员的长度为0则说明该数据文件为空,出现跳号,如果不为0,则可以确定该数据文件正确存储,没有跳号。

示例性的,本发明实施例的数据文件检测方法中定义数组结构如下程序所示:

本发明实施例提供的数据文件检测方法,可以在数据同步过程中检测数据文件是否存在跳号,避免了数据文件的重复统计,也能及时发现漏传或者生成数据文件异常等问题,为稽核数据文件提供了很大的便利。

实施例三

本发明实施例提供一种数据文件检测方法,如图3所示,该方法可以包括:

步骤301、生成数据文件。

需要说明的是,本发明实施例提供的数据文件检测方法可以应用在生成数据文件时对生成数据文件的检测,也可以应用在接收数据文件时对接收的数据文件的检测。

步骤302、如果所述数据文件包含子文件,获取所述数据文件的文件序号和子文件序号;根据所述数据文件的文件序号,确定所述数据文件在所述预设数组中的第一存储序号;根据所述子文件序号,确定所述子文件在所述预设数组的第一存储序号的子数组中的第二存储序号,将所述子文件存储在所述预设数组的所述第二存储序号对应的位置。

具体的,数据文件检测装置遍历所述预设数组,遍历是指对所述预设数组中的每一个文件进行判断,确定所述预设数组中的数据文件是否包含子文件。

示例性的,如实施例一中表1所示,遍历parF数组,通过数据文件对应的subflag的取值可以确定数据文件是否包含子文件。

具体的,数据文件检测装置确定所述数据文件是否包含子文件,如果数据文件包含子文件,数据文件检测装置获取所述数据文件的子文件序号,将所述数据文件的子文件序号减一,确定所述数据文件在所述预设数组中的存储序号,将所述数据文件的子文件存储在所述子文件序号对应的位置。

步骤303、确定所述数据文件的子文件中数据的长度。

步骤304、如果所述数据的长度为0,确定所述数据文件存在跳号。

步骤305、如果所述数据的长度不为0,确定所述数据文件没有跳号。

示例性的,如实施例一中的表1所示,数据文件NIG_20150930.0003的subflag为1,可以确定该数据文件包含子文件,则对subFarray遍历,分别判断NIG_20150930.0003.001和NIG_20150930.0003.002的数据成员的长度是否为0,如果为0则说明该数据文件的子文件为空,出现跳号,如果不为0,则可以确定该数据文件的子文件正确存储,没有跳号。

本发明实施例提供的数据文件检测方法,可以在数据同步过程中检测数据文件是否存在跳号,避免了数据文件的重复统计,也能及时发现漏传或者生成数据文件异常等问题,为稽核数据文件提供了很大的便利。

实施例四

本发明实施例提供一种数据文件检测装置,如图4所示,所述数据文件检测装置可以包括:存储模块401、第一确定模块402、第二确定模块403和第三确定模块404,其中,

所述存储模块401,用于将数据文件存储在预设数组中;

所述第一确定模块402,用于如果所述数据文件包含子文件,确定所述数据文件的子文件中数据的长度;

所述第二确定模块403,用于如果所述数据文件不包含子文件,确定所述数据文件中数据的长度;

所述第三确定模块404,用于根据所述数据的长度确定所述数据文件是否存在跳号。

进一步地,所述存储模块401具体用于如果数据文件不包含子文件,将所 述数据文件存储至预设数组中;如果所述数据文件包含子文件,将所述数据文件的子文件存储至所述预设数组的子数组中。

进一步地,如图5、图6所示,所述存储模块401具体包括:

第一获取单元4011,用于获取所述数据文件的文件序号;

第一确定单元4012,具体用于根据所述数据文件的文件序号,确定所述数据文件在所述预设数组中的存储序号;

第一存储单元4013,具体用于将所述数据文件存储在所述预设数组的所述存储序号对应的位置;

第二获取单元4014,用于获取所述数据文件的文件序号和子文件序号;

第二确定单元4015,用于根据所述数据文件的文件序号,确定所述数据文件在所述预设数组中的第一存储序号;还用于根据所述子文件序号,确定所述子文件在所述预设数组的第一存储序号的子数组中的第二存储序号;

第二存储单元4016,用于将所述子文件存储在所述预设数组的所述第二存储序号对应的位置。

进一步地,如图5、图6所示,所述装置还包括:

所述生成模块405,用于在所述将多个数据文件存储在预设数组中之前,生成数据文件;

或者,

所述接收模块406,用于在所述将多个数据文件存储在预设数组中之前,接收数据文件。

进一步地,所述第三确定模块404具体用于如果所述数据的长度为0,确定所述数据文件存在跳号;如果所述数据的长度不为0,确定所述数据文件没有跳号。

具体的,本发明实施例提供的数据文件检测装置的理解可以参考实施例一至实施例三的数据文件检测方法的说明,本发明实施例在此不再赘述。

本发明实施例提供的数据文件检测装置,可以在数据同步过程中检测数据文件是否存在跳号,避免了数据文件的重复统计,也能及时发现漏传或者生成 数据文件异常等问题,为稽核数据文件提供了很大的便利。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1