專利名稱::一種文件打包的方法和裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種文件打包的方法和裝置。技術(shù)背景文件打包,指的是將存儲設(shè)備中保存的多個文件合成一個文件,稱為包文件,同時用戶還可以從包文件中提取出所需的文件。在日常生活中,計算機中存在大量的文件。為了合理布局和便于查找,人們通常將這些文件進行分類、存檔。在分類、存檔時,往往需要將多個文件進行打包。一般,用戶會選擇WinZip等工具來對這些文件進行打包存儲,這類工具的打包具體步驟包括首先將需要打包的各個文件進行壓縮,然后將壓縮后的文件寫入到一個包文件內(nèi),并將所有的文件和文件夾相應(yīng)的信息集中存放在一起。使用Zip打包確實可以解決多文件的存檔問題,并且可以對被打包的文件進行數(shù)據(jù)壓縮,從而節(jié)省了存儲空間。但是由于這類工具是將所有的文件數(shù)據(jù)集中存放,所以會導(dǎo)致這種打包方式存在一定的缺點和限制,例如(1)利用ZIP進行文件壓縮打包時,需要獲取全部數(shù)據(jù)后才能進行操作。(2)不適應(yīng)網(wǎng)絡(luò)應(yīng)用。(3)不能保存同一文件的多個歷史版本。
發(fā)明內(nèi)容本發(fā)明實施提供一種文件打包的方法和裝置,用以解決現(xiàn)有技術(shù)中進行文件壓縮打包時,需要獲取全部數(shù)據(jù)后才能進行操作的問題。本發(fā)明實施例一種文件打包的方法,包括收集待打包的文件,其中,每個文件由文件項來描述,并且每個文件項包括多個用于描述文件內(nèi)容的文件信息;將每個文件項所包含的文件信息分成多個分組信息,并為每個文件項的分組信息標(biāo)注組標(biāo)示;將所有的文件項分為多個集合,并根據(jù)所述組標(biāo)示將每個集合中的分組信息組合成多個集合組;按照一定可控的粒度將所述集合組寫入包文件。其中,當(dāng)對所述包文件進行修改時,方法一包括收集所有包含修改內(nèi)容的文件項,并取出所述包文件內(nèi)的所有文件項;將從包文件中取出的文件項與收集到的文件項進行合并;將合并后每個文件項所包含的文件信息分成多個分組信息,并為每個文件項的分組信息標(biāo)注組標(biāo)示;將所有的文件項分為多個集合,并根據(jù)所述組標(biāo)示將每個集合中所有文件項的分組信息組合成多個集合組;按照一定可控的粒度將所述集合組寫入包文件。當(dāng)對所述包文件進行^fi務(wù)改時,方法二包括收集所有包含修改內(nèi)容的文件項,并將收集到的文件項進行合并;將合并后每個文件項所包含的文件信息分成多個分組信息,并為每個文件項的分組信息標(biāo)注組標(biāo)示;將所有的文件項分為多個集合,并根據(jù)所述組標(biāo)示將每個集合中所有文件項的分組信息組合成多個集合組;按照一定可控的粒度將所述集合組寫入包文件尾。本發(fā)明實施例還提供另外一種文件打包的方法,包括收集待打包的文件,其中,每個文件由至少一個文件項來描述,并且每個文件項由多個描述文件內(nèi)容的文件信息組成,所述文件信息中包含表示多個數(shù)據(jù)編碼方法排列順序的數(shù)據(jù)編碼序列項;根據(jù)所述編碼序列分別對每個文件項中的數(shù)據(jù)進行數(shù)據(jù)編碼處理;將編碼處理后的文件項寫入包文件中。所述文件信息中還包含操作,所述操作是將包文件作為一個虛擬的存儲設(shè)備,在該存儲設(shè)備上進行的文件系統(tǒng)操:作,并且文件項中只包含一個文件系統(tǒng)操作。在將文件項寫入包文件之前,還包括將描述同一文件的多個文件項進行合并,所述合并包括將操作具有邏輯關(guān)系的文件項進行合并,并將合并文件項中重復(fù)的文件信息刪減為一份。對應(yīng)方法一,本發(fā)明實施例還提供一種文件打包的裝置,包括收集模塊用于收集待打包的文件,其中,每個文件由文件項來描述,并且所述文件項由多個描述文件內(nèi)容的文件信息組成;分組模塊,用于將每個文件項所包含的文件信息分成多個分組信息,并標(biāo)注每組分組信息的組別標(biāo)示;集合組模塊,用于將所有的文件項分為多個集合,并根據(jù)所述組標(biāo)示將每個集合中的分組信息組合成多個集合組;寫模塊,用于按照一定的粒度將所述集合組寫入包文件。根據(jù)第二種文件打包方法,本發(fā)明實施例提供一種對應(yīng)的文件打包的裝置,包括收集模塊,用于收集待打包的文件,其中,每個文件由至少一個文件項來描述,并且每個文件項由多個描述文件內(nèi)容的文件信息組成,所述文件信息中包含表示多個數(shù)據(jù)編碼方法排列順序的數(shù)據(jù)編碼序列項;編碼模塊,用于根據(jù)所述編碼序列分別對每個文件項中的數(shù)據(jù)進行數(shù)據(jù)編碼處理;寫模塊,用于將編碼處理后的文件項寫入包文件中。在本發(fā)明實施例中所有需要打包的文件或者文件夾都由多個獨立的文件項組成,并且還將每個文件項進行分組,使得文件打包和讀取時候都更加的靈活。另外,本發(fā)明中的在文件項中加入了編碼序列項,使得文件項在打包時,可以靈活的將多種編碼方法對文件項中的數(shù)據(jù)進行編碼。圖1為本發(fā)明實施例一種文件打包方法的流程圖;圖2為本發(fā)明實施例所提供的第二種文件打包的方法的流程圖;圖3為本發(fā)明實施例第一種修改包文件的方法流程圖;圖4為本發(fā)明實施例第二種修改包文件的方法流程圖;圖5為應(yīng)用本發(fā)明實施例應(yīng)用第二種修改包文件的方法對包文件進行修改的方法流程圖;圖6為本發(fā)明實施例一中文件打包裝置的裝置圖;圖7為本發(fā)明實施例一種文件打包裝置中第一修訂模塊的裝置圖;圖8為本發(fā)明實施例一種文件打包裝置的裝置圖。具體實施方式本發(fā)明實施例中,首先收集所有需要打包的文件或者文件夾,其中所有的文件或者文件夾都由至少一個文件項組成,然后將收集到的所有文件項進行排序,最后根據(jù)排序的結(jié)果將文件項寫入包文件中。另外還有一些文件信息在開始時不能獲得,必須在后續(xù)的處理過程中才能計算得到,例如,數(shù)據(jù)在包文件中的位置。這些文件信息可以在后期處理時得到。下面結(jié)合說明書附圖對本發(fā)明實施例提供兩種文件打包方法,如圖1所示,方法一的具體步驟包括步驟IOI、收集所有需要打包的文件(包括文件、文件夾和包文件),每個文件由文件項來描述。由用戶或者外部程序提供需要進行打包的文件必須信息。步驟102、將所有的文件項進行排序。其中,文件項排序的方法有多種,如(1)將合并后的文件項按照文件系統(tǒng)的結(jié)構(gòu)層次前序排列。(2)由用戶或者外部程序按照實際使用時文件項的訪問順序指定文件項的排列順序。由于包文件內(nèi)部的數(shù)據(jù)是按照實際使用時的訪問順序存儲的,所以包文件在網(wǎng)絡(luò)傳輸時,可以在獲取數(shù)據(jù)的同時傳輸數(shù)據(jù),從而達到線性化的效果。(3)按照文件項收集時的順序排列。在本發(fā)明實施例中文件項的排列順序并不限于以上三種,只需要保證對于每一個文件項在使用路徑時,都可以找到相應(yīng)的i各徑即可。其中,路徑信息可以有多種方式,如A、相對路徑,通過顯式的操作指定當(dāng)前路徑,或者在某些操作里面隱含的指定了當(dāng)前路徑,之后的文件項可以相對當(dāng)前路徑進行操作。B、絕對路徑,文件項指定所需的絕對路徑,直接使用。C、顯式指定層次結(jié)構(gòu),通過各文件項之間的指針、引用、包含等等關(guān)系來確定層次結(jié)構(gòu)。步驟103、將每個文件項的文件信息分為多個分組信息,并為每組標(biāo)注組別標(biāo)示。分組的原則與具體的應(yīng)用相關(guān),例如可以將一個項中的文件類型、文件名稱、數(shù)據(jù)指向作為第一組,將數(shù)據(jù)長度、數(shù)據(jù)編碼方式和數(shù)據(jù)作為第二組。步驟104、新建包文件,按照步驟102調(diào)整后的文件項順序和步驟103的分組結(jié)果將分組信息寫入包文件中。其中,將分組信息寫入包文件時,具體包括方法(1)依次寫入每個文項的分組信息,即,以文件項為單位將分組信息寫入包文件中。(2)將所有文件項劃分成多個集合。然后將同一集合中同一組別的分組信息組成一個集合組,最后將所述集合組寫入包文件。并在每個集合組的頭部寫入相鄰集合組的位置信息以及與下一組別的位置信息。另外,在組成集合組時可以有多種形式。上述同一組的組成一個集合組是一種方式,同時也可以通過組標(biāo)示將不同文件項的不同分組數(shù)據(jù)組合到一個集合組中。其中上述分組和分集時可以有多種方式??梢杂捎脩艋蛘咄獠砍绦虿鹏迵?jù)文件項實際使用時候的需要見對文件項進行分組和分集合;也可以在系統(tǒng)中設(shè)置分組、分集合的規(guī)則對文件項進行劃分。如圖2所示,本發(fā)明實施例所提供的第二種文件打包的方法具體包括步驟步驟201、收集待打包的文件,每個文件由至少一個文件項來描述,并且每個文件項都包含多個用于描述文件內(nèi)容的文件信息。在本發(fā)明實施例中包括但不僅限于以下文件信息文件的類型(文件或文件夾)、名稱、路徑、操作、數(shù)據(jù)、數(shù)據(jù)長度、數(shù)據(jù)指向(或數(shù)據(jù)位置)、數(shù)據(jù)編碼序列、校驗值等等,上述文件信息對于每個文件項來說并不全部出現(xiàn),而是根據(jù)需要進行選擇、組合。其中,校驗值是必須出現(xiàn)的,因為校驗值保證了文件內(nèi)容的正確性,從而提高整體的可靠性。其中一部分文件信息的含義是(1)操作指的是將包文件看作一個虛擬的存儲設(shè)備,在該存儲設(shè)備上進行的新建、刪除、替換、修改、追加、切換當(dāng)前目錄等等可能的文件系統(tǒng)操作。一個文件項中只包含上述文件系統(tǒng)操作的任意一種。(2)數(shù)據(jù)指的是原始文件數(shù)據(jù)經(jīng)過指定的數(shù)據(jù)編碼方法處理后的結(jié)果,如果未指定相關(guān)的數(shù)據(jù)編碼方法,則將原始數(shù)據(jù)直接作為所需數(shù)據(jù)。對于文件項來說,數(shù)據(jù)有時可以為空。具體來說,當(dāng)某個文件項是文件夾時,或者當(dāng)某個文件項的操作是刪除時,并不需要數(shù)據(jù),這時數(shù)據(jù)為么。(3)數(shù)據(jù)編碼序列是構(gòu)成該編碼序列的一個或者多個編碼方法的排列順序。不僅僅包含一般意義上的數(shù)據(jù)編碼方法,本發(fā)明實施例還將加解密方法看作為數(shù)據(jù)編碼方法。這是因為加解密方法與數(shù)據(jù)編碼方法一樣,都是將數(shù)據(jù)從一種表示形式變換為另一種表示形式,只不過加解密在變換的過程與密鑰等安全信息相關(guān)。通過在序列中添加不同的編碼方法描述,然后按照該序列對相應(yīng)數(shù)據(jù)進行編碼處理,繼而達到靈活的擴展壓縮和安全處理。步驟202、根據(jù)文件項中的數(shù)據(jù)編碼序列對文件原始數(shù)據(jù)進行編碼,所述編碼序列是該次對文件項中的數(shù)據(jù)進行編碼時所用到的數(shù)據(jù)編碼方法以及各編碼方法的先后順序。數(shù)據(jù)編碼序列可以根據(jù)實際使用的需要隨時的添加數(shù)據(jù)編石馬方法。步驟203,根據(jù)文件項的名稱、路徑、操作等文件信息,將針對同一文件或文件夾的多個文件項合并為一個新的文件項。所述合并是將所述操作具有邏輯關(guān)系的多個文件項進行合并,并將所述多個文件項中重復(fù)的文件信息刪減為一份。例如(1)文件項1新建文件A,文件項2對文件A的操作是替換,其中文件項2替換掉了文件項1中新建的文件A的內(nèi)容,則合并后得到文件項3是新建文件A,并且文件項3中的所有文件數(shù)據(jù)是文件項2提供的替換數(shù)據(jù)。(2)如果之后還有文件項4對文件A的操作是追加,文件項5對文件A的操作是刪除,則文件項1、2、4、5合并后的結(jié)果是0個文件項。步驟204、將所有的文件項進行排序。其中,文件項排序方法與上述排序方法相同。步驟205、將每個文件項的文件信息分為多個分組信息,并為每組標(biāo)注組別標(biāo)示。分組的原則與具體的應(yīng)用相關(guān),例如可以將一個項中的文件類型、文件名稱、操作、數(shù)據(jù)指向作為第一組,將數(shù)據(jù)長度、數(shù)據(jù)編碼方式和數(shù)據(jù)作為第二組。步驟206、新建包文件,按照步驟204調(diào)整后的文件項順序和步驟205的分組結(jié)果將分組信息寫入包文件中。其中,將分組信息寫入包文件時,具體包括方法(1)依次寫入每個文項的分組信息,即,以文件項為單位將分組信息寫入包文件中。(2)將所有文件項劃分成多個集合。然后將同一集合中同一組別的分組信息組成一個集合組,最后將所述集合組寫入包文件。并在每個集合組的頭部寫入相鄰集合組的位置信息以及與下一組別的位置信息,或者寫入其他必要的描述信息。針對上述包文件的打包方法,本發(fā)明實施例還提供對包文件進行修改的方法,如實施例1和實施例2所示實施例1:如圖3所示,對包文件進行修改的具體步驟包括步驟301、收集所有包含修改內(nèi)容的文件項。步驟302、取出包文件內(nèi)的所有文件項,并將取出的文件項與收集到的包含修改內(nèi)容的文件項進行合并。在實際的應(yīng)用中收集文件項和從包文件中取出文件項是兩個獨立的過程相互影響。根據(jù)文件項的名稱、路徑等等文件信息,將針對同一文件或文件夾的多個文件項合并為一個新的文件項。所述合并包括將所述多個文件項中重復(fù)的文件信息刪減為一份,并將不相同的文件信息組合在一起。步驟303、將合并后的文件項進行排序。排序可以采用前述的排序方法。步驟304、將每個文件項的文件信息分為多個分組信息,并為每組標(biāo)注纟且別才示示。步驟305、新建包文件,按照步驟203調(diào)整后的文件項順序和步驟204的分組結(jié)果將分組信息寫入包文件中。其中,將分組信息寫入包文件時,具體包括方法(1)依次寫入每個文項的分組信息,即,以文件項為單位將分組信息寫入包文件中。(2)將所有文件項劃分成多個集合。然后將同一集合中同一組別的分組信息組成一個集合組(在本發(fā)明實施例中并不僅限于這一種組合方式,可以按照一定的組合規(guī)則將不同文件項中不同組別的文件信息組合到一個集合組中),最后將所述集合組寫入包文件,所述將所述文件項分成多個集合時,集合的大小與具體的應(yīng)用相關(guān)。并在每個集合組的頭部寫入相鄰集合組的位置信息以及與下一組別的位置信息。實施例2:如圖4所示,對包文件進行修改的具體步驟包括步驟401、收集所有包含修改內(nèi)容的文件項。步驟402、根據(jù)文件項的名稱、路徑等文件信息,將針對同一文件或文件夾的多個文件項合并為一個新的文件項。所述合并合并原則與上述合并原則相同。步驟403、將合并后的文件項進行排序。排序可以采用前述的排序方法。步驟404、將每個文件項的文件信息分為多個分組信息,并為每組標(biāo)注組別標(biāo)示。步驟405、將所有文件項中同一組別的分組信息組成一個集合組,然后按照步驟303調(diào)整后的文件項順序?qū)⑺黾辖M寫入所述包文件的尾部。并在每個集合組的頭部寫入相鄰集合組的位置信息以及與下一組別的位置4呂息。如果需要對包文件進行多次修改時,即可將包含修改內(nèi)容的文件項視為一個修改單元添加到包文件的尾部,根據(jù)修改的次數(shù),包文件被分為多個單元,初始包文件為第一單元,第一次》f改追加的內(nèi)容為第二單元,如果還有追加的內(nèi)容則分別為第三、四......單元,即對包文件進行的所有操作都可以通過在包文件尾追加文件項的形式實現(xiàn)。上述單元構(gòu)成了包文件被修改的歷史。如果利用本發(fā)明實施例2所提供的方法對包文件E進行修改。如圖5所示具體包括步驟步驟501、收集所有包含修改內(nèi)容的文件項A、B、C、D。假設(shè)包文件E中已存在文件A、B,收集到的文件項A為刪除文件A,文件項B是向文件B中添加數(shù)據(jù),文件項C建立新文件夾,文件項D是新建文件A。文件項B所包含的文件信息,如表l所示,包括操作、文件類型、偏移、路徑、數(shù)據(jù)長度、數(shù)據(jù)編碼方法序列和數(shù)據(jù)。<table>tableseeoriginaldocumentpage16</column></row><table>表1當(dāng)需要切換當(dāng)前路徑時,操作中會存在設(shè)置路徑項。在本發(fā)明實施例中設(shè)置路徑項也可以視為描述某個文件或者文件夾所需要的文件信息,即可將設(shè)置路徑項作為一個描述文件或者是文件夾的文件項。步驟502、合并文件項。因為文件項A是對文件A進行刪除操作,文件項D是新建文件A,所以整和之后得到新的文件項A,且新的文件項A的內(nèi)容是替換現(xiàn)有文件A,并且替換的文件數(shù)據(jù)是文件項D的數(shù)據(jù)。所以合并之后剩余文件項為文件項A、B、C。步驟503、用戶或者外部程序根據(jù)實際應(yīng)用文件項的訪問順序?qū)ξ募桝、B、C進行排序。步驟504、將每個文件項的文件信息分成兩組,第一分組信息和第二分組信息。步驟505、將所有文件項的分組信息組成第一集合組和第二集合組。文件項A、B、C的第一分組信息和第二分組信息分別集中在一起形成第一集合組和第二集合組。將集合組寫入包文件中,并在第一集合組的頭部寫入相鄰的集合組的位置以及對應(yīng)的第二集合組的位置。同時在第二集合組的頭部也包含相鄰的集合組的位置以及對應(yīng)的第一集合組的位置。步驟506、根據(jù)步驟503調(diào)整后的文件項順序,并將所述集合組寫入包文件的文件尾。對應(yīng)上述第一種文件打包的方法,本發(fā)明實施例還提供一種文件打包的裝置,如圖6所示,包括收集模塊601:用于收集待打包的文件,其中,每個文件由文件項來描述,并且所述文件項由多個描述文件內(nèi)容的文件信息組成。排序模塊602,用于所有的文件項進行排序。分組模塊603,用于將每個文件項所包含的文件信息分成多個分組信息,并標(biāo)注每組分組信息的組別標(biāo)示。集合組模塊604,用于將所有的文件項分為多個集合,并根據(jù)所述組標(biāo)示將每個集合中的分組信息組合成多個集合組。寫模塊605,用于將所述集合組寫入包文件。第一修訂模塊606,用于當(dāng)對包文件進行修改時,將所述包文件內(nèi)的所有文件項取出并與收集到的包含修改內(nèi)容的文件項合并,將合并后的文件項發(fā)送至分組模塊。如圖7所示,所述第一修訂模塊606包括提取單元701和合并單元702:提取單元701,用于耳又出包文件中的所有文件項。合并單元702,用于將從包文件中取出的文件項與收集到的包含修改內(nèi)容的文件項進行合并。第二修訂模塊607,用于當(dāng)對包文件進行修改時,將收集到的所有包含修改內(nèi)容的文件項進行合并,當(dāng)啟用第二修訂模塊時,所述寫模塊還用于將所述集合組模塊輸出的集合組寫到所述包文件尾。如圖8所示,針對第二種文件打包方法,本發(fā)明實施例還提供另外一種文件打包的裝置,包括操作模塊801,操作模塊,用于將包文件作為一個虛擬的存儲設(shè)備,并以添加文件項的形式在該存儲設(shè)備上進行文件系統(tǒng)操作,并將文件項發(fā)送至收集模塊,其中,每個文件項中只包含一個文件系統(tǒng)操作。收集模塊802,用于收集待打包的文件,其中,每個文件由至少一個文件項來描述,并且每個文件項由多個描述文件內(nèi)容的文件信息組成,所述文件信息中包含表示多個數(shù)據(jù)編碼方法排列順序的數(shù)據(jù)編碼序列項。編碼模塊803,用于根據(jù)所述編碼序列分別對每個文件項中的數(shù)據(jù)進行數(shù)據(jù)編碼處理,另外,還可根據(jù)實際應(yīng)用當(dāng)中的需要隨時在該編碼序列中添加新的數(shù)據(jù)編碼方法。合并模塊804,用于將操作具有邏輯關(guān)系的文件項進行合并,并將合并文件項中重復(fù)的文件信息刪減為一份。排序模塊805,用于將所有的文件項按照一定的規(guī)則進行排序。分組模塊806,用于將每個文件項所包含的文件信息分成多個分組信息,并標(biāo)注每組分組信息的組別標(biāo)示,分組的原則與具體的應(yīng)用相關(guān),例如可以將一個項中的文件類型、文件名稱、操作、數(shù)據(jù)指向作為第一組,將數(shù)據(jù)長度、數(shù)據(jù)編碼方式和數(shù)據(jù)作為第二組。集合組模塊807,用于將所有的文件項分為多個集合,并根據(jù)所述組標(biāo)示將每個集合中的分組信息組合成多個集合組。寫模塊808,用于將所述集合組寫入包文件。修訂模塊809,用于當(dāng)對包文件進行修改時,將所述包文件內(nèi)的所有文件項取出并與收集到的包含修改內(nèi)容的文件項合并,將合并后的文件項發(fā)送至分組模塊。利用實施例對包文件內(nèi)的文件或者文件夾進行修改時,所述集合組模塊還用于將所有包含修改內(nèi)容的文件項組成一個集合,并才艮據(jù)所述組別標(biāo)示將集合中同一組別的分組信息組成一個集合組。則所述寫模塊還用于根據(jù)排序?qū)⑺黾辖M寫入包文件尾。在本發(fā)明實施例中對包文件內(nèi)容進行修改時,并不需要將整個包文件進行重寫,只需要將被修改的包內(nèi)文件以及相關(guān)信息以增量修改的形式寫入包文件即可。另外,上述特點還可以達到保存包內(nèi)文件的存歷史版本的作用。即在文件A被加入包文件之后,又對文件A進行》f改,并將〗務(wù)改后的文件A再次加入包文件,則包文件中包含文件A^f務(wù)改前后的文件內(nèi)容。在本發(fā)明實施例中將包內(nèi)文件的存儲順序按照指定的順序進行重新排列,從而使得包文件在網(wǎng)絡(luò)上進行線性傳輸時,可以一邊傳輸包文件數(shù)據(jù),一邊按照之前指定的順序獲取文件,這種特性又稱之為線性化。員根據(jù)本發(fā)明的技術(shù)方案得出其它的實施方式,同樣屬于本發(fā)明的技術(shù)創(chuàng)新范明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。權(quán)利要求1、一種文件打包的方法,其特征在于,包括收集待打包的文件,其中,每個文件由文件項來描述,并且每個文件項包括多個用于描述文件內(nèi)容的文件信息;將每個文件項所包含的文件信息分成多個分組信息,并為每個文件項的分組信息標(biāo)注組標(biāo)示;將所有的文件項分為多個集合,并根據(jù)所述組標(biāo)示將每個集合中的分組信息組合成多個集合組后寫入包文件。2、如權(quán)利要求l所述的方法,其特征在于,所述根據(jù)所述組標(biāo)示將每個集合中的分組信息組合成多個集合組后寫入包文件之后,進一步包括當(dāng)對包文件進行修改時,收集所有包含修改內(nèi)容的文件項,并取出所述包文件內(nèi)的所有文件項;將從包文件中取出的文件項與收集到的文件項進行合并,并將合并后的文件項寫入包文件。3、如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述組標(biāo)示將每個集合中的分組信息組合成多個集合組后寫入包文件之后,進一步包括當(dāng)對包文件進行修改時,收集所有包含修改內(nèi)容的文件項,并將收集到的文件項進行合并;將合并后的文件項寫到包文件尾。4、如權(quán)利要求2或3任一權(quán)項所述的方法,其特征在于,所述合并包括將多個文件項中重復(fù)的文件信息刪減為一4分,所述多個文件項是描述同一文件的多個文件項。5、如權(quán)利要求l、2或3任一權(quán)限所述的方法,其特征在于,所述將每個文件項所包含的文件信息分成多個分組信息之前,進一步包括將所有的文件項進行排序,并且所述排序包括下述方式中的一種將所有的文件項按照文件系統(tǒng)的結(jié)構(gòu)層次前序排列;按照實際使用時文件項的訪問順序排列所述文件項;按照文件項收集時的順序排列文件項。6、一種文件打包的方法,其特征在于,包括收集待打包的文件,其中,每個文件由至少一個文件項來描述,并且每個文件項由多個描述文件內(nèi)容的文件信息組成,所述文件信息中包含表示多個數(shù)據(jù)編碼方法排列順序的數(shù)據(jù)編碼序列項;根據(jù)所述編碼序列分別對每個文件項中的數(shù)據(jù)進行數(shù)據(jù)編碼處理;將編碼處理后的文件項寫入包文件中。7、如權(quán)利要求6所述的方法,其特征在于,所述文件信息中還包含操作,所述操作是將包文件作為一個虛擬的存儲設(shè)備,在該存儲設(shè)備上進行的文件系統(tǒng)操作,并且文件項中只包含一個文件系統(tǒng)操作。8、如權(quán)利要求7所述的方法,其特征在于,在將文件項寫入包文件之前,還包括將描述同一文件的多個文件項按照文件項收集時的先后順序進行合并。9、如權(quán)利要求8所述的方法,其特征在于,將所述合并包括將操作具有邏輯關(guān)系的文件項進行合并,并將合并文件項中重復(fù)的文件信息刪減為一份。10、如權(quán)利要求6或8任一權(quán)項所述的方法,其特征在于,將文件項寫入包文件之前,進一步包括將所有的文件項進行排序,并且所述排序包括下述方式中的一種將所有的文件項按照文件系統(tǒng)的結(jié)構(gòu)層次前序排列;按照實際使用時文件項的訪問順序排列所述文件項;按照文件項收集時的順序排列文件項。11、如;K利要求6所述的方法,其特征在于,將文件項寫入包文件之前,進一步包括將每個文件項所包含的文件信息分成多個分組信息,并為每個文件項的分組信息標(biāo)注組標(biāo)示;將所有的文件項分為多個集合,并根據(jù)所述組標(biāo)示將每個集合中的分組信息組合成多個集合組后寫入包文件。12、一種文件打包的裝置,其特征在于,包括收集模塊用于收集待打包的文件,其中,每個文件由文件項來描述,并且所述文件項由多個描述文件內(nèi)容的文件信息組成;分組模塊,用于將每個文件項所包含的文件信息分成多個分組信息,并標(biāo)注每組分組信息的組別標(biāo)示;集合組模塊,用于將所有的文件項分為多個集合,并根據(jù)所述組標(biāo)示將每個集合中的分組信息組合成多個集合組;寫模塊,用于將所述集合組寫入包文件。13、如權(quán)利要求12所述的裝置,其特征在于,該裝置還包括第一修訂模塊,用于當(dāng)對包文件進行修改時,將所述包文件內(nèi)的所有文件項取出并與收集到的包含修改內(nèi)容的文件項合并,將合并后的文件項發(fā)送至分組模塊。14、如權(quán)利要求12所述的裝置,其特征在于,該裝置還包括第二修訂模塊,用于當(dāng)對包文件進行修改時,將收集到的所有包含修改內(nèi)容的文件項進行合并;所述寫模塊還用于將所述合并后的文件項寫到包文件尾。15、如權(quán)利要求1214任一權(quán)項所述的裝置,其特征在于,該裝置還包括排序模塊,用于將所有的文件項進行排序,所述排序包括下述方式中的一種將所有的文件項按照文件系統(tǒng)的結(jié)構(gòu)層次前序排列;按照實際使用時文件項的訪問順序排列所述文件項;按照文件項收集時的順序排列文件項;所述寫模塊還用于根據(jù)該排序?qū)⑽募棇懭氚募?6、如權(quán)利要求13所述的裝置,其特征在于,所述第一修訂模塊還包括提取單元,用于取出包文件中的所有文件項;合并單元,用于將從包文件中取出的文件項與收集到的包含修改內(nèi)容的文件項進行合并。17、一種文件打包的裝置,其特征在于,包括收集模塊,用于收集待打包的文件,其中,每個文件由至少一個文件項來描述,并且每個文件項由多個描述文件內(nèi)容的文件信息組成,所述文件信息中包含表示多個數(shù)據(jù)編碼方法排列順序的數(shù)據(jù)編碼序列項;編碼模塊,用于根據(jù)所述編碼序列分別對每個文件項中的數(shù)據(jù)進行數(shù)據(jù)編碼處理;寫模塊,用于將編碼處理后的文件項寫入包文件中。18、如權(quán)利要求17所述的裝置,其特征在于,該裝置還包括操作模塊,用于將包文件作為一個虛擬的存儲設(shè)備,并以添加文件項的形式在該存儲設(shè)備上進行文件系統(tǒng)操作,并將文件項發(fā)送至收集模塊,其中,每個文件項中只包含一個文件系統(tǒng)操作。19、如權(quán)利要求18所述的裝置,其特征在于,該裝置還包括合并模塊,用于將操作具有邏輯關(guān)系的文件項進行合并,并將合并文件項中重復(fù)的文件信息刪減為一份。20、如權(quán)利要求1719任一權(quán)項所述的裝置,其特征在于,該裝置還包括排序模塊,用于將所有的文件項按照一定的規(guī)則進行排序,所述排序包括下述方式中的一種將所有的文件項按照文件系統(tǒng)的結(jié)構(gòu)層次前序排列;按照實際使用時文件項的訪問順序排列所述文件項;按照文件項收集時的順序排列文件項。21、如權(quán)利要求17所述的裝置,其特征在于,該裝置還包括分組模塊,用于將每個文件項所包含的文件信息分成多個分組信息,并標(biāo)注每組分組信息的組別標(biāo)示;集合組模塊,用于將所有的文件項分為多個集合,并根據(jù)所述組標(biāo)示將每個集合中的分組信息組合成多個集合組;則所述寫模塊還用于所述集合組寫入包文件。22、如權(quán)利要求17所述的裝置,其特征在于,該裝置還包括修訂模塊,用于當(dāng)對包文件進行修改時,將所述包文件內(nèi)的所有文件項取出并與收集模塊所收集到的包含修改內(nèi)容的文件項合并,并將合并后的文件項發(fā)送至分組模塊。全文摘要本發(fā)明公開了一種文件打包的方法和裝置,以解決現(xiàn)有技術(shù)中打包文件數(shù)據(jù)處理不靈活的問題。本發(fā)明所提供的方法中首先收集所有打包的文件或者文件夾,所述待打包的文件或者文件夾都由至少一個文件項來表示,并且所述文件項由多個描述文件內(nèi)容的文件信息組成。然后將每個文件項的文件信息分成多個分組信息,最后按照一定的排序原則將分組信息寫入包文件中。本發(fā)明所述的裝置與方法,通過將需要打包的文件或者文件夾分成多個文件項然后再將文件項分為多個分組信息的方法,使得打包的文件在使用和打包時靈活度更高。文檔編號G06F17/30GK101398853SQ20081022442公開日2009年4月1日申請日期2008年10月14日優(yōu)先權(quán)日2008年10月14日發(fā)明者仇睿恒,幟湯,毅王申請人:北京大學(xué);北大方正集團有限公司;北京方正阿帕比技術(shù)有限公司