本發(fā)明涉及數(shù)據(jù)傳輸領(lǐng)域的數(shù)據(jù)同步技術(shù),尤其涉及一種數(shù)據(jù)文件檢測(cè)方法和裝置。
背景技術(shù):
音樂(lè)公司各系統(tǒng)之間經(jīng)常會(huì)使用到數(shù)據(jù)同步的操作,在數(shù)據(jù)同步過(guò)程中通常需要大數(shù)據(jù)量的同步或數(shù)據(jù)交互,一般使用文件傳輸協(xié)議(ftp,filetransferprotocol)進(jìn)行文本數(shù)據(jù)同步。很多時(shí)候同步的數(shù)據(jù)量比較大,同時(shí)同步規(guī)范又常常限制一個(gè)同步文件中的最大記錄數(shù),這就造成生成的同步文件個(gè)數(shù)可能是多個(gè),因此,需要在同步過(guò)程中稽核文件是否全部同步完成而沒(méi)有遺漏。
現(xiàn)有技術(shù)中,生成ftp同步數(shù)據(jù)文件時(shí)缺少對(duì)應(yīng)的跳號(hào)檢查機(jī)制,造成一些文件名稱生成造成跳號(hào),例如:1004_channal_001,1004_channal_002,1004_channal_004。因此,亟需檢測(cè)方法來(lái)檢查在生成同步數(shù)據(jù)文件是否完整。
技術(shù)實(shí)現(xiàn)要素:
為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供一種數(shù)據(jù)文件檢測(cè)方法和裝置,可以在生成數(shù)據(jù)同步過(guò)程中檢測(cè)數(shù)據(jù)文件是否生成完整。
本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
本發(fā)明實(shí)施例提供一種數(shù)據(jù)文件檢測(cè)方法,所述方法包括:
將數(shù)據(jù)文件存儲(chǔ)在預(yù)設(shè)數(shù)組中;
如果所述數(shù)據(jù)文件包含子文件,確定所述數(shù)據(jù)文件的子文件中數(shù)據(jù)的長(zhǎng)度;
如果所述數(shù)據(jù)文件不包含子文件,確定所述數(shù)據(jù)文件中數(shù)據(jù)的長(zhǎng)度;
根據(jù)所述數(shù)據(jù)的長(zhǎng)度確定所述數(shù)據(jù)文件是否存在跳號(hào)。
進(jìn)一步地,所述將數(shù)據(jù)文件存儲(chǔ)在預(yù)設(shè)數(shù)組中,具體為:
如果數(shù)據(jù)文件不包含子文件,將所述數(shù)據(jù)文件存儲(chǔ)至預(yù)設(shè)數(shù)組中;
如果所述數(shù)據(jù)文件包含子文件,將所述數(shù)據(jù)文件的子文件存儲(chǔ)至所述預(yù)設(shè)數(shù)組的子數(shù)組中。
進(jìn)一步地,所述將數(shù)據(jù)文件存儲(chǔ)至預(yù)設(shè)數(shù)組中,具體為:獲取所述數(shù)據(jù)文件的文件序號(hào);根據(jù)所述數(shù)據(jù)文件的文件序號(hào),確定所述數(shù)據(jù)文件在所述預(yù)設(shè)數(shù)組中的存儲(chǔ)序號(hào);將所述數(shù)據(jù)文件存儲(chǔ)在所述預(yù)設(shè)數(shù)組的所述存儲(chǔ)序號(hào)對(duì)應(yīng)的位置;
所述將數(shù)據(jù)文件的子文件存儲(chǔ)至所述預(yù)設(shè)數(shù)組的子數(shù)組中,具體為:獲取所述數(shù)據(jù)文件的文件序號(hào)和子文件序號(hào);根據(jù)所述數(shù)據(jù)文件的文件序號(hào),確定所述數(shù)據(jù)文件在所述預(yù)設(shè)數(shù)組中的第一存儲(chǔ)序號(hào);根據(jù)所述子文件序號(hào),確定所述子文件在所述預(yù)設(shè)數(shù)組的第一存儲(chǔ)序號(hào)的子數(shù)組中的第二存儲(chǔ)序號(hào),將所述子文件存儲(chǔ)在所述預(yù)設(shè)數(shù)組的所述第二存儲(chǔ)序號(hào)對(duì)應(yīng)的位置。
進(jìn)一步地,在所述將多個(gè)數(shù)據(jù)文件存儲(chǔ)在預(yù)設(shè)數(shù)組中之前,進(jìn)一步包括:
生成數(shù)據(jù)文件;或者,
接收數(shù)據(jù)文件。
進(jìn)一步地,所述根據(jù)所述數(shù)據(jù)的長(zhǎng)度確定所述數(shù)據(jù)文件是否存在跳號(hào),具體為:
如果所述數(shù)據(jù)的長(zhǎng)度為0,確定所述數(shù)據(jù)文件存在跳號(hào);
如果所述數(shù)據(jù)的長(zhǎng)度不為0,確定所述數(shù)據(jù)文件沒(méi)有跳號(hào)。
本發(fā)明實(shí)施例提供一種數(shù)據(jù)文件檢測(cè)裝置,所述裝置包括:存儲(chǔ)模塊、第一確定模塊、第二確定模塊和第三確定模塊,其中,
所述存儲(chǔ)模塊,用于將數(shù)據(jù)文件存儲(chǔ)在預(yù)設(shè)數(shù)組中;
所述第一確定模塊,用于如果所述數(shù)據(jù)文件包含子文件,確定所述數(shù)據(jù)文件的子文件中數(shù)據(jù)的長(zhǎng)度;
所述第二確定模塊,用于如果所述數(shù)據(jù)文件不包含子文件,確定所述數(shù)據(jù)文件中數(shù)據(jù)的長(zhǎng)度;
所述第三確定模塊,用于根據(jù)所述數(shù)據(jù)的長(zhǎng)度確定所述數(shù)據(jù)文件是否存在 跳號(hào)。
進(jìn)一步地,所述存儲(chǔ)模塊具體用于如果數(shù)據(jù)文件不包含子文件,將所述數(shù)據(jù)文件存儲(chǔ)至預(yù)設(shè)數(shù)組中;如果所述數(shù)據(jù)文件包含子文件,將所述數(shù)據(jù)文件的子文件存儲(chǔ)至所述預(yù)設(shè)數(shù)組的子數(shù)組中。
進(jìn)一步地,所述存儲(chǔ)模塊具體包括:
第一獲取單元,用于獲取所述數(shù)據(jù)文件的文件序號(hào);
第一確定單元,用于根據(jù)所述數(shù)據(jù)文件的文件序號(hào),確定所述數(shù)據(jù)文件在所述預(yù)設(shè)數(shù)組中的存儲(chǔ)序號(hào);
第一存儲(chǔ)單元,用于將所述數(shù)據(jù)文件存儲(chǔ)在所述預(yù)設(shè)數(shù)組的所述存儲(chǔ)序號(hào)對(duì)應(yīng)的位置;
第二獲取單元,用于獲取所述數(shù)據(jù)文件的文件序號(hào)和子文件序號(hào);
第二確定單元,用于根據(jù)所述數(shù)據(jù)文件的文件序號(hào),確定所述數(shù)據(jù)文件在所述預(yù)設(shè)數(shù)組中的第一存儲(chǔ)序號(hào);還用于根據(jù)所述子文件序號(hào),確定所述子文件在所述預(yù)設(shè)數(shù)組的第一存儲(chǔ)序號(hào)的子數(shù)組中的第二存儲(chǔ)序號(hào);
第二存儲(chǔ)單元,用于將所述子文件存儲(chǔ)在所述預(yù)設(shè)數(shù)組的所述第二存儲(chǔ)序號(hào)對(duì)應(yīng)的位置。
進(jìn)一步地,所述裝置還包括:
生成模塊,用于在所述將多個(gè)數(shù)據(jù)文件存儲(chǔ)在預(yù)設(shè)數(shù)組中之前,生成數(shù)據(jù)文件;或者,
接收模塊,用于在所述將多個(gè)數(shù)據(jù)文件存儲(chǔ)在預(yù)設(shè)數(shù)組中之前,接收數(shù)據(jù)文件。
進(jìn)一步地,所述第三確定模塊具體用于如果所述數(shù)據(jù)的長(zhǎng)度為0,確定所述數(shù)據(jù)文件存在跳號(hào);如果所述數(shù)據(jù)的長(zhǎng)度不為0,確定所述數(shù)據(jù)文件沒(méi)有跳號(hào)。
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)文件檢測(cè)方法和裝置,將數(shù)據(jù)文件存儲(chǔ)在預(yù)設(shè)數(shù)組中;如果所述數(shù)據(jù)文件包含子文件,確定所述數(shù)據(jù)文件的子文件中數(shù)據(jù)的長(zhǎng)度;如果所述數(shù)據(jù)文件不包含子文件,確定所述數(shù)據(jù)文件中數(shù)據(jù)的長(zhǎng)度; 根據(jù)所述數(shù)據(jù)的長(zhǎng)度確定所述數(shù)據(jù)文件是否存在跳號(hào)。本發(fā)明實(shí)施例提供的數(shù)據(jù)文件檢測(cè)方法和裝置,可以在數(shù)據(jù)同步過(guò)程中檢測(cè)數(shù)據(jù)文件是否存在跳號(hào),避免了數(shù)據(jù)文件的重復(fù)統(tǒng)計(jì),也能及時(shí)發(fā)現(xiàn)漏傳或者生成數(shù)據(jù)文件異常等問(wèn)題,為稽核數(shù)據(jù)文件提供了很大的便利。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例提供的數(shù)據(jù)文件檢測(cè)方法流程示意圖一;
圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)文件檢測(cè)方法流程示意圖二;
圖3為本發(fā)明實(shí)施例提供的數(shù)據(jù)文件檢測(cè)方法流程示意圖三;
圖4為本發(fā)明實(shí)施例提供的數(shù)據(jù)文件檢測(cè)裝置結(jié)構(gòu)示意圖一;
圖5為本發(fā)明實(shí)施例提供的數(shù)據(jù)文件檢測(cè)裝置結(jié)構(gòu)示意圖二;
圖6為本發(fā)明實(shí)施例提供的數(shù)據(jù)文件檢測(cè)裝置結(jié)構(gòu)示意圖三。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。
實(shí)施例一
本發(fā)明實(shí)施例提供一種數(shù)據(jù)文件檢測(cè)方法,如圖1所示,該方法可以包括:
步驟101、將數(shù)據(jù)文件存儲(chǔ)在預(yù)設(shè)數(shù)組中。
在同步數(shù)據(jù)文件過(guò)程中,由于各種原因的影響同步的數(shù)據(jù)文件不完整,即同步的數(shù)據(jù)文件的文件序號(hào)產(chǎn)生跳號(hào),例如,生成同步數(shù)據(jù)文件時(shí),可能在生成某個(gè)同步數(shù)據(jù)文件時(shí),突然出現(xiàn)斷電等意外情況,導(dǎo)致該同步數(shù)據(jù)文件沒(méi)有成功生成,沒(méi)有該同步數(shù)據(jù)文件,也就相應(yīng)的沒(méi)有該數(shù)據(jù)文件的文件名,但底層數(shù)據(jù)存儲(chǔ)已經(jīng)計(jì)數(shù),數(shù)組中已經(jīng)為該文件記錄,由于沒(méi)有成功生成,所以雖然已經(jīng)計(jì)數(shù),但文件的內(nèi)容為空;接收同步數(shù)據(jù)文件時(shí),可能在傳輸過(guò)程中出現(xiàn)傳輸故障等導(dǎo)致數(shù)據(jù)包丟失,沒(méi)有成功接收到數(shù)據(jù)文件,導(dǎo)致底層雖然已經(jīng)計(jì)數(shù),但數(shù)據(jù)文件內(nèi)容為空。
具體的,本發(fā)明實(shí)施例可以確定所述數(shù)據(jù)文件是否包含子文件,如果數(shù)據(jù)文件不包含子文件,獲取所述數(shù)據(jù)文件的文件序號(hào);根據(jù)所述數(shù)據(jù)文件的文件序號(hào),確定所述數(shù)據(jù)文件在所述預(yù)設(shè)數(shù)組中的存儲(chǔ)序號(hào);將所述數(shù)據(jù)文件存儲(chǔ)在所述預(yù)設(shè)數(shù)組的所述存儲(chǔ)序號(hào)對(duì)應(yīng)的位置;
如果所述數(shù)據(jù)文件包含子文件,獲取所述數(shù)據(jù)文件的文件序號(hào)和子文件序號(hào);根據(jù)所述數(shù)據(jù)文件的文件序號(hào),確定所述數(shù)據(jù)文件在所述預(yù)設(shè)數(shù)組中的第一存儲(chǔ)序號(hào);根據(jù)所述子文件序號(hào),確定所述子文件在所述預(yù)設(shè)數(shù)組的第一存儲(chǔ)序號(hào)的子數(shù)組中的第二存儲(chǔ)序號(hào),將所述子文件存儲(chǔ)在所述預(yù)設(shè)數(shù)組的所述第二存儲(chǔ)序號(hào)對(duì)應(yīng)的位置。
本發(fā)明實(shí)施例中的預(yù)設(shè)數(shù)組可以為farray數(shù)據(jù)結(jié)構(gòu),獲取所述數(shù)據(jù)文件的文件序號(hào)依照文件序號(hào)放入farray結(jié)構(gòu)的parf成員的對(duì)應(yīng)的數(shù)組位置,如果有文件子序號(hào),獲取所述子文件序號(hào),即文件子序號(hào)不為0,依照子文件序號(hào)存儲(chǔ)在sfar,sfar為subfarray的簡(jiǎn)稱。存儲(chǔ)的時(shí)候要檢測(cè)對(duì)應(yīng)位置字符串長(zhǎng)度是否為0,如果不為0,則代表數(shù)據(jù)文件有傳輸重復(fù)的存在,具體的,數(shù)據(jù)文件的文件名在該farray數(shù)據(jù)結(jié)構(gòu)中的存儲(chǔ)如表1所示:
表1數(shù)據(jù)文件的文件名及其在數(shù)組中對(duì)應(yīng)的存儲(chǔ)位置
如表1所示,將nig_20150930.0001存儲(chǔ)到parf[0],由于不存在下一級(jí)文 件,即不包含子文件,因此subflag為0;將nig_20150930.0002存儲(chǔ)到parf[1],由于不存在下一級(jí)文件,因此subflag為0;將nig_20150930.0004存儲(chǔ)到parf[3],由于不存在下一級(jí)文件,因此subflag為0。
數(shù)據(jù)文件nig_20150930.0003的數(shù)據(jù)量較大,受到同步文件最大記錄數(shù)的限制,因此,將nig_20150930.0003拆分成nig_20150930.0003.001和nig_20150930.0003.002這兩個(gè)同步子文件;在parf[2]記錄nig_20150930.0003,但并不存在nig_20150930.0003這個(gè)文件名,由于nig_20150930.0003存在下一級(jí)文件,即包含子文件,因此subflag為1;將nig_20150930.0003.001存儲(chǔ)至parf[2].subfname[0];將nig_20150930.0003.002存儲(chǔ)至parf[2].subfname[1]。
步驟102、如果所述數(shù)據(jù)文件包含子文件,確定所述數(shù)據(jù)文件的子文件中數(shù)據(jù)的長(zhǎng)度。
具體的,數(shù)據(jù)文件檢測(cè)裝置遍歷所述預(yù)設(shè)數(shù)組,遍歷是指對(duì)所述預(yù)設(shè)數(shù)組中的每一個(gè)文件進(jìn)行判斷,確定所述預(yù)設(shè)數(shù)組中的數(shù)據(jù)文件是否包含子文件。
示例性的,如表1所示,遍歷parf數(shù)組,通過(guò)數(shù)據(jù)文件對(duì)應(yīng)的subflag的取值可以確定數(shù)據(jù)文件是否包含子文件。如果所述數(shù)據(jù)文件包含子文件,數(shù)據(jù)文件檢測(cè)裝置確定所述數(shù)據(jù)文件的子文件中數(shù)據(jù)的長(zhǎng)度。
步驟103、如果所述數(shù)據(jù)文件不包含子文件,確定所述數(shù)據(jù)文件中數(shù)據(jù)的長(zhǎng)度。
示例性的,如表1所示,數(shù)據(jù)文件nig_20150930.0001的subflag為0,可以確定該數(shù)據(jù)文件不包含子文件,需要判斷數(shù)據(jù)文件nig_20150930.0001中的數(shù)據(jù)成員的長(zhǎng)度。
需要說(shuō)明的是,本發(fā)明對(duì)步驟102和步驟103之間的順序并不做限制,既可以先執(zhí)行步驟102、再執(zhí)行步驟103,也可以先執(zhí)行步驟103、再執(zhí)行步驟102,還可以同時(shí)執(zhí)行步驟102和步驟103。
步驟104、根據(jù)所述數(shù)據(jù)的長(zhǎng)度確定所述數(shù)據(jù)文件是否存在跳號(hào)。
具體的,當(dāng)所述數(shù)據(jù)文件中數(shù)據(jù)的長(zhǎng)度為0時(shí),數(shù)據(jù)文件檢測(cè)裝置確定所 述數(shù)據(jù)文件存在跳號(hào);當(dāng)所述數(shù)據(jù)文件中數(shù)據(jù)的長(zhǎng)度不為0時(shí),數(shù)據(jù)文件檢測(cè)裝置確定所述數(shù)據(jù)文件沒(méi)有跳號(hào)。
示例性的,如表1所示,數(shù)據(jù)文件檢測(cè)裝置判斷數(shù)據(jù)文件nig_20150930.0001中的數(shù)據(jù)成員的長(zhǎng)度是否為0,如果為0則說(shuō)明該數(shù)據(jù)文件為空,出現(xiàn)跳號(hào),如果不為0,則可以確定該數(shù)據(jù)文件正確存儲(chǔ),沒(méi)有跳號(hào)。
本發(fā)明實(shí)施例提供的數(shù)據(jù)文件檢測(cè)方法,可以在數(shù)據(jù)同步過(guò)程中檢測(cè)數(shù)據(jù)文件是否存在跳號(hào),避免了數(shù)據(jù)文件的重復(fù)統(tǒng)計(jì),也能及時(shí)發(fā)現(xiàn)漏傳或者生成數(shù)據(jù)文件異常等問(wèn)題,為稽核數(shù)據(jù)文件提供了很大的便利。
實(shí)施例二
本發(fā)明實(shí)施例提供一種數(shù)據(jù)文件檢測(cè)方法,如圖2所示,該方法可以包括:
步驟201、生成數(shù)據(jù)文件。
需要說(shuō)明的是,本發(fā)明實(shí)施例提供的數(shù)據(jù)文件檢測(cè)方法可以應(yīng)用在生成數(shù)據(jù)文件時(shí)對(duì)生成數(shù)據(jù)文件的檢測(cè),也可以應(yīng)用在接收數(shù)據(jù)文件時(shí)對(duì)接收的數(shù)據(jù)文件的檢測(cè)。
步驟202、如果數(shù)據(jù)文件不包含子文件,獲取所述數(shù)據(jù)文件的文件序號(hào);根據(jù)所述數(shù)據(jù)文件的文件序號(hào),確定所述數(shù)據(jù)文件在所述預(yù)設(shè)數(shù)組中的存儲(chǔ)序號(hào);將所述數(shù)據(jù)文件存儲(chǔ)在所述預(yù)設(shè)數(shù)組的所述存儲(chǔ)序號(hào)對(duì)應(yīng)的位置。
具體的,數(shù)據(jù)文件檢測(cè)裝置確定所述數(shù)據(jù)文件是否包含子文件,如果數(shù)據(jù)文件不包含子文件,數(shù)據(jù)文件檢測(cè)裝置獲取所述數(shù)據(jù)文件的文件序號(hào),將所述數(shù)據(jù)文件的文件序號(hào)減一,確定所述數(shù)據(jù)文件在所述預(yù)設(shè)數(shù)組中的存儲(chǔ)序號(hào)。
示例性的,數(shù)據(jù)文件檢測(cè)裝置獲取數(shù)據(jù)文件的文件序號(hào),依照文件序號(hào)放入farray結(jié)構(gòu)的parf成員的對(duì)應(yīng)的數(shù)組位置,如實(shí)施例一中的表1所示,數(shù)據(jù)文件的文件名在存儲(chǔ)在預(yù)設(shè)數(shù)組時(shí),采用數(shù)據(jù)文件的文件序號(hào)減去“1”對(duì)應(yīng)的數(shù)組位置存放該文件名,例如,數(shù)據(jù)文件nig_20150930.0001對(duì)應(yīng)的序號(hào)為“0001”,取整則為“1”,那么該數(shù)據(jù)文件對(duì)應(yīng)的存放位置為a1.parf[0],數(shù)據(jù)文件的子文件名也采用上述同樣的規(guī)則。即使數(shù)據(jù)文件的傳輸不是按照正常的增序,例如,1、2、3這樣的順序,只要按照文件名序號(hào)減“1”進(jìn)行存儲(chǔ),當(dāng) 某一個(gè)文件缺少時(shí),可以快速的發(fā)現(xiàn)數(shù)據(jù)文件跳號(hào)。
步驟203、確定所述數(shù)據(jù)文件中數(shù)據(jù)的長(zhǎng)度。
步驟204、如果所述數(shù)據(jù)的長(zhǎng)度為0,確定所述數(shù)據(jù)文件存在跳號(hào)。
步驟205、如果所述數(shù)據(jù)的長(zhǎng)度不為0,確定所述數(shù)據(jù)文件沒(méi)有跳號(hào)。
示例性的,如實(shí)施例一中表1所示,數(shù)據(jù)文件nig_20150930.0002的subflag為0,則判斷nig_20150930.0002的數(shù)據(jù)成員的長(zhǎng)度,如果nig_20150930.0002的數(shù)據(jù)成員的長(zhǎng)度為0則說(shuō)明該數(shù)據(jù)文件為空,出現(xiàn)跳號(hào),如果不為0,則可以確定該數(shù)據(jù)文件正確存儲(chǔ),沒(méi)有跳號(hào)。
示例性的,本發(fā)明實(shí)施例的數(shù)據(jù)文件檢測(cè)方法中定義數(shù)組結(jié)構(gòu)如下程序所示:
本發(fā)明實(shí)施例提供的數(shù)據(jù)文件檢測(cè)方法,可以在數(shù)據(jù)同步過(guò)程中檢測(cè)數(shù)據(jù)文件是否存在跳號(hào),避免了數(shù)據(jù)文件的重復(fù)統(tǒng)計(jì),也能及時(shí)發(fā)現(xiàn)漏傳或者生成數(shù)據(jù)文件異常等問(wèn)題,為稽核數(shù)據(jù)文件提供了很大的便利。
實(shí)施例三
本發(fā)明實(shí)施例提供一種數(shù)據(jù)文件檢測(cè)方法,如圖3所示,該方法可以包括:
步驟301、生成數(shù)據(jù)文件。
需要說(shuō)明的是,本發(fā)明實(shí)施例提供的數(shù)據(jù)文件檢測(cè)方法可以應(yīng)用在生成數(shù)據(jù)文件時(shí)對(duì)生成數(shù)據(jù)文件的檢測(cè),也可以應(yīng)用在接收數(shù)據(jù)文件時(shí)對(duì)接收的數(shù)據(jù)文件的檢測(cè)。
步驟302、如果所述數(shù)據(jù)文件包含子文件,獲取所述數(shù)據(jù)文件的文件序號(hào)和子文件序號(hào);根據(jù)所述數(shù)據(jù)文件的文件序號(hào),確定所述數(shù)據(jù)文件在所述預(yù)設(shè)數(shù)組中的第一存儲(chǔ)序號(hào);根據(jù)所述子文件序號(hào),確定所述子文件在所述預(yù)設(shè)數(shù)組的第一存儲(chǔ)序號(hào)的子數(shù)組中的第二存儲(chǔ)序號(hào),將所述子文件存儲(chǔ)在所述預(yù)設(shè)數(shù)組的所述第二存儲(chǔ)序號(hào)對(duì)應(yīng)的位置。
具體的,數(shù)據(jù)文件檢測(cè)裝置遍歷所述預(yù)設(shè)數(shù)組,遍歷是指對(duì)所述預(yù)設(shè)數(shù)組中的每一個(gè)文件進(jìn)行判斷,確定所述預(yù)設(shè)數(shù)組中的數(shù)據(jù)文件是否包含子文件。
示例性的,如實(shí)施例一中表1所示,遍歷parf數(shù)組,通過(guò)數(shù)據(jù)文件對(duì)應(yīng)的subflag的取值可以確定數(shù)據(jù)文件是否包含子文件。
具體的,數(shù)據(jù)文件檢測(cè)裝置確定所述數(shù)據(jù)文件是否包含子文件,如果數(shù)據(jù)文件包含子文件,數(shù)據(jù)文件檢測(cè)裝置獲取所述數(shù)據(jù)文件的子文件序號(hào),將所述數(shù)據(jù)文件的子文件序號(hào)減一,確定所述數(shù)據(jù)文件在所述預(yù)設(shè)數(shù)組中的存儲(chǔ)序號(hào),將所述數(shù)據(jù)文件的子文件存儲(chǔ)在所述子文件序號(hào)對(duì)應(yīng)的位置。
步驟303、確定所述數(shù)據(jù)文件的子文件中數(shù)據(jù)的長(zhǎng)度。
步驟304、如果所述數(shù)據(jù)的長(zhǎng)度為0,確定所述數(shù)據(jù)文件存在跳號(hào)。
步驟305、如果所述數(shù)據(jù)的長(zhǎng)度不為0,確定所述數(shù)據(jù)文件沒(méi)有跳號(hào)。
示例性的,如實(shí)施例一中的表1所示,數(shù)據(jù)文件nig_20150930.0003的subflag為1,可以確定該數(shù)據(jù)文件包含子文件,則對(duì)subfarray遍歷,分別判斷nig_20150930.0003.001和nig_20150930.0003.002的數(shù)據(jù)成員的長(zhǎng)度是否為0,如果為0則說(shuō)明該數(shù)據(jù)文件的子文件為空,出現(xiàn)跳號(hào),如果不為0,則可以確定該數(shù)據(jù)文件的子文件正確存儲(chǔ),沒(méi)有跳號(hào)。
本發(fā)明實(shí)施例提供的數(shù)據(jù)文件檢測(cè)方法,可以在數(shù)據(jù)同步過(guò)程中檢測(cè)數(shù)據(jù)文件是否存在跳號(hào),避免了數(shù)據(jù)文件的重復(fù)統(tǒng)計(jì),也能及時(shí)發(fā)現(xiàn)漏傳或者生成數(shù)據(jù)文件異常等問(wèn)題,為稽核數(shù)據(jù)文件提供了很大的便利。
實(shí)施例四
本發(fā)明實(shí)施例提供一種數(shù)據(jù)文件檢測(cè)裝置,如圖4所示,所述數(shù)據(jù)文件檢測(cè)裝置可以包括:存儲(chǔ)模塊401、第一確定模塊402、第二確定模塊403和第三確定模塊404,其中,
所述存儲(chǔ)模塊401,用于將數(shù)據(jù)文件存儲(chǔ)在預(yù)設(shè)數(shù)組中;
所述第一確定模塊402,用于如果所述數(shù)據(jù)文件包含子文件,確定所述數(shù)據(jù)文件的子文件中數(shù)據(jù)的長(zhǎng)度;
所述第二確定模塊403,用于如果所述數(shù)據(jù)文件不包含子文件,確定所述數(shù)據(jù)文件中數(shù)據(jù)的長(zhǎng)度;
所述第三確定模塊404,用于根據(jù)所述數(shù)據(jù)的長(zhǎng)度確定所述數(shù)據(jù)文件是否存在跳號(hào)。
進(jìn)一步地,所述存儲(chǔ)模塊401具體用于如果數(shù)據(jù)文件不包含子文件,將所 述數(shù)據(jù)文件存儲(chǔ)至預(yù)設(shè)數(shù)組中;如果所述數(shù)據(jù)文件包含子文件,將所述數(shù)據(jù)文件的子文件存儲(chǔ)至所述預(yù)設(shè)數(shù)組的子數(shù)組中。
進(jìn)一步地,如圖5、圖6所示,所述存儲(chǔ)模塊401具體包括:
第一獲取單元4011,用于獲取所述數(shù)據(jù)文件的文件序號(hào);
第一確定單元4012,具體用于根據(jù)所述數(shù)據(jù)文件的文件序號(hào),確定所述數(shù)據(jù)文件在所述預(yù)設(shè)數(shù)組中的存儲(chǔ)序號(hào);
第一存儲(chǔ)單元4013,具體用于將所述數(shù)據(jù)文件存儲(chǔ)在所述預(yù)設(shè)數(shù)組的所述存儲(chǔ)序號(hào)對(duì)應(yīng)的位置;
第二獲取單元4014,用于獲取所述數(shù)據(jù)文件的文件序號(hào)和子文件序號(hào);
第二確定單元4015,用于根據(jù)所述數(shù)據(jù)文件的文件序號(hào),確定所述數(shù)據(jù)文件在所述預(yù)設(shè)數(shù)組中的第一存儲(chǔ)序號(hào);還用于根據(jù)所述子文件序號(hào),確定所述子文件在所述預(yù)設(shè)數(shù)組的第一存儲(chǔ)序號(hào)的子數(shù)組中的第二存儲(chǔ)序號(hào);
第二存儲(chǔ)單元4016,用于將所述子文件存儲(chǔ)在所述預(yù)設(shè)數(shù)組的所述第二存儲(chǔ)序號(hào)對(duì)應(yīng)的位置。
進(jìn)一步地,如圖5、圖6所示,所述裝置還包括:
所述生成模塊405,用于在所述將多個(gè)數(shù)據(jù)文件存儲(chǔ)在預(yù)設(shè)數(shù)組中之前,生成數(shù)據(jù)文件;
或者,
所述接收模塊406,用于在所述將多個(gè)數(shù)據(jù)文件存儲(chǔ)在預(yù)設(shè)數(shù)組中之前,接收數(shù)據(jù)文件。
進(jìn)一步地,所述第三確定模塊404具體用于如果所述數(shù)據(jù)的長(zhǎng)度為0,確定所述數(shù)據(jù)文件存在跳號(hào);如果所述數(shù)據(jù)的長(zhǎng)度不為0,確定所述數(shù)據(jù)文件沒(méi)有跳號(hào)。
具體的,本發(fā)明實(shí)施例提供的數(shù)據(jù)文件檢測(cè)裝置的理解可以參考實(shí)施例一至實(shí)施例三的數(shù)據(jù)文件檢測(cè)方法的說(shuō)明,本發(fā)明實(shí)施例在此不再贅述。
本發(fā)明實(shí)施例提供的數(shù)據(jù)文件檢測(cè)裝置,可以在數(shù)據(jù)同步過(guò)程中檢測(cè)數(shù)據(jù)文件是否存在跳號(hào),避免了數(shù)據(jù)文件的重復(fù)統(tǒng)計(jì),也能及時(shí)發(fā)現(xiàn)漏傳或者生成 數(shù)據(jù)文件異常等問(wèn)題,為稽核數(shù)據(jù)文件提供了很大的便利。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用硬件實(shí)施例、軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。