[發明專利]一種文件合并方法及分解方法有效
| 申請號: | 201110316534.1 | 申請日: | 2011-10-18 |
| 公開(公告)號: | CN102508880A | 公開(公告)日: | 2012-06-20 |
| 發明(設計)人: | 韓玉青;胡建華 | 申請(專利權)人: | 廣東威創視訊科技股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 廣州粵高專利商標代理有限公司 44102 | 代理人: | 禹小明 |
| 地址: | 510663 廣東省*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 文件 合并 方法 分解 | ||
技術領域
本發明涉及計算機的文件系統技術,具體涉及一種文件合并方法及分解方法。
背景技術
隨著信息時代的到來,計算機已經普及應用到生活中的方方面面,而用戶的信息在計算機中的主要存儲方式是文件和文件夾。計算機中的文件是以計算機硬盤為載體存儲在計算機上的信息集合,文件可以是文本文檔、圖片、程序等等。文件通常具有三個字母的文件擴展名,用于指示文件類型。計算機中的文件夾是用來協助人們管理計算機文件的,每一個文件夾對應一塊磁盤空間,它提供了指向對應空間的地址,它沒有擴展名,也就不用擴展名來標識。文件夾一般采用多層次結構(如樹狀結構),文件夾不但可以包含文件,而且可包含下一級文件夾,這樣類推下去形成的多級文件架結構既幫助了用戶將不同類型和功能的文件分類儲存,又方便文件查找,還允許不同文件夾中的文件擁有同樣的文件名。計算機的每個用戶、每個系統都在不時地跟文件/文件夾打交道。普通用戶或程序設計人員,很多時候都需要將多個文件和/或文件夾合并為一個文件來存放,在使用的時候再分解為原來的文件和/或文件夾。
在使用計算機中的文件或文件夾時,我們一般會遇到以下的一些情況:
1.對于一些瑣碎的小文件,用戶需要合并到一起,而在使用的時候再還原。
2.?技術人員設計程序時不希望把程序的文件結構和文件內容展現給用戶,所以把所有內容的文件夾和/或文件合并為一個文件,然后加密,使用時再通過程序把合并后的文件分解為原來的文件和/或文件夾。
3.現在免安裝的綠色版程序越來越多,這樣就需要把該綠色版程序的執行程序跟內容合并為一個文件,方便用戶傳播和無需安裝就可以使用。
4.技術人員在設計安裝程序時需要使用到文件和/或文件夾的合并技術;程序安裝時,再使用文件和/或文件夾的分解技術,分解出部分或全部的文件和/或文件夾。
面對上述的文件和/或文件夾合并、分解需求,目前傳統的文件合并(不包括壓縮技術)技術,都只是簡單地把需要合并的源文件(文件和/或文件夾)內容以二進制方式按照先后順序合并在一個目標文件中,并在特定的位置(目標文件的頭部、尾部或在每個源文件的開始位置或結束位置)記錄每個源文件的信息(源文件的相對路徑、字節數與偏移量)。分解時先打開合并后的目標文件,讀出目標文件信息(每個源文件的字節數和偏移量)然后按照文件字節順序讀出每個源文件內容,并在磁盤中生成源文件。這種傳統的文件合并、分解方法存在很多缺點:
第一,合并、分解的速度太慢,尤其是包含比較多的大文件時;
第二,文件分解時必須按順序讀取合并后的目標文件,才可以分解出源文件的結構。
第三,文件分解只能整體分解,無法快速地分解出其中的某一個源文件或不分解目標文件就直接使用其中一個源文件,即直接對目標文件進行分析,直接使用目標文件中某個源文件的內存數據。?
發明內容
本發明解決的技術問題是克服現有技術的不足,提供一種提高文件合并速度的文件合并方法。
本發明還提供了一種提高文件分解速度,并能夠在合并后的目標文件中對某個源文件進行快速查找和分解的文件分解方法。
為解決上述技術問題,本發明的第一個發明目的是實現一種文件合并方法,其采用的技術方案如下:
一種文件合并方法,包括如下步驟:
進行文件合并,遍歷讀取源文件,形成源文件標記信息并存儲到樹形結構中;
創建目標文件及相應的內存映射文件;具體是根據源文件的總字節數、存儲樹形結構所占的字節數再加4個字節(用來存儲樹形結構內容的大?。﹦摻繕宋募跋鄳膬却嬗成湮募?/p>
把存儲樹形結構內容所占的字節數和樹形結構的內容作為文件頭信息先后寫入到內存映射文件開始位置;
根據樹形結構將源文件的內容寫入到內存映射文件中,寫入的位置從存儲樹形結構內容之后開始;
寫操作結束后,關閉內存映射文件,形成的目標文件即是合并文件。
本發明使用內存映射文件技術建立目標文件(即合并后的文件)與地址進程空間的映射,然后對源文件、目標文件進行讀寫分析,能讓應用程序使用內存操作來操縱文件,而不必要在文件里來回地讀、寫、移動文件指針,并采用樹形結構存儲源文件的標記信息,根據樹形結構將源文件的內容寫入到內存映射文件中,大大提高了文件合并的速度。
上述方案中,根據樹形結構將源文件的內容寫入到內存映射文件中的具體步驟包括:
根據當前分配的線程數C創建C個用于記錄源文件序列的線程列表Lp;?
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣東威創視訊科技股份有限公司,未經廣東威創視訊科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201110316534.1/2.html,轉載請聲明來源鉆瓜專利網。





