本發明涉及數據傳輸領域的數據同步技術,尤其涉及一種數據文件檢測方法和裝置。
背景技術:
音樂公司各系統之間經常會使用到數據同步的操作,在數據同步過程中通常需要大數據量的同步或數據交互,一般使用文件傳輸協議(ftp,filetransferprotocol)進行文本數據同步。很多時候同步的數據量比較大,同時同步規范又常常限制一個同步文件中的最大記錄數,這就造成生成的同步文件個數可能是多個,因此,需要在同步過程中稽核文件是否全部同步完成而沒有遺漏。
現有技術中,生成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,確定所述數據文件沒有跳號。
具體的,本發明實施例提供的數據文件檢測裝置的理解可以參考實施例一至實施例三的數據文件檢測方法的說明,本發明實施例在此不再贅述。
本發明實施例提供的數據文件檢測裝置,可以在數據同步過程中檢測數據文件是否存在跳號,避免了數據文件的重復統計,也能及時發現漏傳或者生成 數據文件異常等問題,為稽核數據文件提供了很大的便利。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或計算機程序產品。因此,本發明可采用硬件實施例、軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
以上所述,僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。