文件處理方法和裝置的制造方法
【技術領域】
[0001]本發明涉及數據處理技術領域,特別涉及一種文件處理方法和裝置。
【背景技術】
[0002]文件備份作為主機數據備份的重要手段之一,主要是通過執行專門的備份作業(可以理解為程序或者任務等)實現的,其中,每一個備份作業所涉及的文件范圍主要是由用戶在備份策略中設置的文件備份清單確定的。然而,由于主機文件系統的特性,備份策略不僅支持具體的文件名,也允許在文件清單中使用多種不同級別、不同類型的通配符,用于表示在文件命名上有共性的文件集合。同時,備份策略中的文件清單分為“包含”和“排除”兩部分,主機通過對這兩部分清單進行集合計算以后,最終確定需要備份的文件范圍。
[0003]主機文件清單對多種通配符的支持簡化了文件清單的表達,有效減少了備份策略的條目數量,但同時也由于通配符的抽象性和復雜性,增加了文件清單的解析難度,使得對備份策略的分割、組合和變更等變得難以操作。目前,業內對于主機含通配符的文件清單的解析尚無有效的解決方案,只能借助專業人員憑借經驗進行人工分析,或者是通過讓系統將含通配符的文件名展開,枚舉為明細的文件清單后,再進行進一步的處理。然而,由于主機文件系統中文件數量龐大,命名錯綜復雜,而且隨著業務處理的需要,文件清單往往會發生較為頻繁的變化。第一種方法全程需要人工參與,無法實現自動化處理,缺乏可靠性,第二種方法由于操作對象為具體的文件清單,不僅需要耗費大量的系統資源,而且由于輸出結果條目過多,在實際應用中也存在諸多不便。
[0004]目前,含通配符的文件清單在主機文件管理中的運用非常普遍,例如:批量文件的備份、恢復、刪除等主要都是基于這類文件清單的,因此,對含有通配符的文件清單的解析和處理的速度,直接關系到主機文件管理的效率,同時文件清單的解析結果的可靠性,也將直接影響主機數據的安全性和完整性。
[0005]針對如何對含通配符的文件清單進行快速和準確地解析,目前尚未提出有效的解決方案。
【發明內容】
[0006]本發明實施例提供了一種文件處理方法,以達到對含通配符的文件清單進行快速和準確地解析,從而有效提高文件管理的效率和可靠性的目的,該方法包括:
[0007]獲取需要解析對比的兩組文件的文件清單;
[0008]將兩組文件的文件清單中含有通配符的文件名進行兩兩配對;
[0009]對兩兩配對后的文件名進行基于有向拓撲序列的交集運算,得到交集的候選拓撲序列;
[0010]將所述候選拓撲序列還原為含通配符的文件名表達式,并根據還原結果,確定生成該文件名的文件名對之間的交集關系;
[0011]對確定出的各對文件名之間的交集關系進行匯總合并,以確定出兩組文件的文件清單之間的交集關系;
[0012]根據確定的兩組文件的文件清單之間的交集關系,響應于用戶輸入的操作指令對兩組文件進行處理。
[0013]在一個實施方式中,根據還原結果,確定生成該文件名的文件名對之間的交集關系,包括:
[0014]對還原出的文件名表達式進行合法性檢查;
[0015]根據合法性檢查的結果,按照以下規則確定生成該文件名的文件名對之間的交集關系:
[0016]如果還原出的文件名表達式未能通過合法性檢查,則確定生成該文件名表達式的文件名對的交集為空;
[0017]如果還原出的文件名表達式能通過合法性檢查,且還原出的文件名表達式與生成該文件名的文件名對中的一個文件名完全相同,則確定生成該文件名表達式的文件名對之間為包含和被包含關系;
[0018]如果還原出的文件名表達式能通過合法性檢查,且與生成該文件名表達式的文件名對中的任意一個文件名都不同,則確定生成該文件名表達式的文件名對之間為相交關系O
[0019]在一個實施方式中,對還原出的文件名表達式進行合法性檢查,包括:
[0020]將還原出的文件名表達式中的文件名段數、除去通配符部分的長度、每段文件名的長度與預定的限制規則進行比較;
[0021]如果都滿足限制規則,則確定通過合法性檢查。
[0022]在一個實施方式中,對兩兩配對后的文件名進行基于有向拓撲序列的交集運算,得到交集的候選拓撲序列,包括:
[0023]對兩兩配對后的文件名中的各對文件名執行如下操作:
[0024]分別構建該對中的兩個文件名的等價拓撲有向圖;
[0025]對這兩個文件名的等價拓撲有向圖進行合并,得到合并后的有向圖的所有拓撲序列,添加權值并篩選出合法的序列;
[0026]對篩選后的拓撲序列進行相鄰節點的合并處理,直至不能再合并為止,以得到合并后的一個或多個交集的候選拓撲序列。
[0027]本發明實施例還提供了一種文件處理裝置,以達到對含通配符的文件清單進行快速和準確地解析,從而有效提高文件管理的效率和可靠性的目的,該裝置包括:
[0028]獲取模塊,用于獲取需要解析對比的兩組文件的文件清單;
[0029]配對模塊,用于將兩組文件的文件清單中含有通配符的文件名進行兩兩配對;
[0030]拓撲計算模塊,用于對兩兩配對后的文件名進行基于有向拓撲序列的交集運算,得到交集的候選拓撲序列;
[0031]交集關系確定模塊,用于將所述候選拓撲序列還原為含通配符的文件名表達式,并根據還原結果,確定生成該文件名的文件名對之間的交集關系;
[0032]合并模塊,用于對確定出的各對文件名之間的交集關系進行匯總合并,以確定出兩組文件的文件清單之間的交集關系;
[0033]處理模塊,用于根據確定的兩組文件的文件清單之間的交集關系,響應于用戶輸入的操作指令對兩組文件進行處理。
[0034]在一個實施方式中,所述交集關系確定模塊包括:
[0035]合法性檢查單元,用于對還原出的文件名表達式進行合法性檢查;
[0036]交集判斷單元,用于根據合法性檢查的結果,按照以下規則確定生成該文件名的文件名對之間的交集關系:
[0037]如果還原出的文件名表達式未能通過合法性檢查,則確定生成該文件名表達式的文件名對的交集為空;
[0038]如果還原出的文件名表達式能通過合法性檢查,且還原出的文件名表達式與生成該文件名的文件名對中的一個文件名完全相同,則確定生成該文件名表達式的文件名對之間為包含和被包含關系;
[0039]如果還原出的文件名表達式能通過合法性檢查,且與生成該文件名表達式的文件名對中的任意一個文件名都不同,則確定生成該文件名表達式的文件名對之間為相交關系O
[0040]在一個實施方式中,所述合法性檢查單元包括:
[0041]比較子單元,用于將還原出的文件名表達式中的文件名段數、除去通配符部分的長度、每段文件名的長度與預定的限制規則進行比較;
[0042]確定子單元,用于當還原出的文件名表達式中的文件名段數、除去通配符部分的長度、每段文件名的長度都滿足限制規則的情況下,確定通過合法性檢查。
[0043]在一個實施方式中,所述拓撲計算模塊具體用于對兩兩配對后的文件名中的各對文件名執行如下操作:
[0044]分別構建該對中的兩個文件名的等價拓撲有向圖;
[0045]對這兩個文件名的等價拓撲有向圖進行合并,得到合并后的有向圖的所有拓撲序列,添加權值并篩選出合法的序列;
[0046]對篩選后的拓撲序列進行相鄰節點的合并處理,直至不能再合并為止,以得到