一種文件合并方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,特別涉及一種文件合并方法及裝置。
【背景技術(shù)】
[0002] 隨著電子技術(shù)的發(fā)展,通過電子設(shè)備閱讀圖書文件的方式已日漸成為一種趨勢。 而電子文件的來源,往往是通過網(wǎng)絡(luò)進(jìn)行下載的。
[0003] 目前,當(dāng)用戶選擇多文件進(jìn)行下載時,常采用的處理方法是:使用打包壓縮軟件或 方法將多個文件合成一個打包的文件,現(xiàn)有的常見打包格式為zip、rar、7z,以zip為例,多 電子書打包成zip格式,打包流程如圖1所示。
[0004] 這種方法雖然可以將多個文件打包成一個文件,但已經(jīng)沒有一個完整的電子書目 錄展現(xiàn)給用戶;即使有軟件支持解析出包是各文件的目錄,但也因為沒有目錄關(guān)系描述,只 能按照各文件獨(dú)立目錄展示,不是一個整體。而且,當(dāng)用戶選擇一本電子書中的部分內(nèi)容進(jìn) 行下載,而選擇的內(nèi)容可能不連續(xù),上述的方法無法進(jìn)行處理,只能根據(jù)用戶選擇的內(nèi)容獨(dú) 立下載每一塊,同樣的,很難生成一個系統(tǒng)的目錄。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明要解決的技術(shù)問題是提供一種文件合并方法及裝置,實現(xiàn)根據(jù)用戶選擇的 待打包文件,生成一具有完整目錄的目標(biāo)文件,從而方便查閱的目的。
[0006] 為解決上述技術(shù)問題,本發(fā)明的實施例提供一種文件合并方法,包括下列步驟:
[0007] 在檢測到用戶已選擇的待合并文件后,提取所述待合并文件的目錄項信息,生成 原始目錄;
[0008] 獲取用戶對所述原始目錄的操作/不操作信息,重新編輯目錄項信息,生成目標(biāo) 目錄;
[0009] 對所述目標(biāo)目錄的文件數(shù)據(jù)進(jìn)行合并,生成目標(biāo)文件。
[0010] 其中,獲取用戶對所述原始目錄的操作/不操作信息,重新編輯目錄項信息,生成 目標(biāo)目錄的步驟包括:
[0011] 獲取用戶對所述原始目錄的操作信息,重新編輯目錄項信息,生成目標(biāo)目錄;或
[0012] 獲取用戶對所述原始目錄的不操作信息,根據(jù)原始的目錄項信息直接生成目標(biāo)目 錄。
[0013] 其中,所述目錄項信息包括:目錄項ID、目錄項名稱、父項ID、兄項ID。
[0014] 其中,獲取用戶對所述原始目錄的操作信息,重新編輯目錄項信息,生成目標(biāo)目錄 的步驟包括:
[0015] 在檢測到用戶的刪除操作時,刪除已選中的目錄項;
[0016] 判斷刪除目錄項是否有子目錄項,若有子目錄項,則將所述刪除目錄項的所有子 目錄項的父項ID修改為所述刪除目錄項的父項ID;
[0017] 判斷所述刪除目錄項的下一目錄項與所述刪除目錄項是否為并列關(guān)系,若為并列 關(guān)系,則將所述刪除目錄項的下一目錄項的兄項ID修改為所述刪除目錄項的兄項ID。 [0018] 其中,獲取用戶對所述原始目錄的操作信息,重新編輯目錄項信息,生成目標(biāo)目錄 的步驟還包括:
[0019] 在檢測到用戶編輯目錄項名稱的操作時,判斷新目錄項名稱是否為空,若新目錄 項名稱不為空,則將原目錄項名稱修改為新目錄項名稱;若新目錄項名稱為空,則保留原目 錄項名稱。
[0020] 其中,獲取用戶對所述原始目錄的操作信息,重新編輯目錄項信息,生成目標(biāo)目錄 的步驟還包括:
[0021] 在檢測到用戶調(diào)整目錄項位置的操作時,判斷調(diào)整目錄項的父目錄項是否發(fā)生變 化,若父目錄項變化且存在,則將新父項ID修改為當(dāng)前父目錄項的目錄項ID;若父目錄項 變化但不存在,則將新父項ID設(shè)置為0 ;
[0022] 判斷調(diào)整目錄的兄目錄項是否發(fā)生變化,若兄目錄項變化且存在,則將新兄項ID 修改為當(dāng)前兄目錄項的目錄項ID;若兄目錄項變化但不存在,則將新兄項ID設(shè)置為0。
[0023] 其中,對所述目標(biāo)目錄的文件數(shù)據(jù)進(jìn)行合并,生成目標(biāo)文件的步驟包括:
[0024] 生成目標(biāo)文件頭信息,所述頭信息包括:目錄信息區(qū)數(shù)量和目錄信息區(qū)偏移量;
[0025] 根據(jù)所述目標(biāo)目錄順序判斷每個文件是否需要壓縮,若需要壓縮,則根據(jù)指定的 壓縮方式進(jìn)行壓縮并將當(dāng)前文件流寫入當(dāng)前數(shù)據(jù)區(qū)尾部;若不需要壓縮,則直接將當(dāng)前文 件流寫入當(dāng)前數(shù)據(jù)區(qū)尾部;
[0026] 將文件信息填入文件信息結(jié)構(gòu);
[0027] 根據(jù)所述目標(biāo)目錄信息生成目錄數(shù)據(jù)區(qū)數(shù)據(jù),根據(jù)所述文件信息結(jié)構(gòu)生成文件映 射數(shù)據(jù)區(qū)數(shù)據(jù),填入文件目錄信息區(qū);
[0028] 根據(jù)文件目錄信息區(qū)數(shù)據(jù)修改文件頭信息的目錄信息區(qū)數(shù)量和目錄信息區(qū)偏移 量。
[0029] 本發(fā)明實施例還提供了一種文件合并裝置,包括:
[0030] 原始目錄生成模塊,用于在檢測到用戶已選擇的待合并文件后,提取所述待合并 文件的目錄項信息,生成原始目錄;
[0031] 目標(biāo)目錄生成模塊,用于獲取用戶對所述原始目錄的操作/不操作信息,重新編 輯目錄項信息,生成目標(biāo)目錄;
[0032] 目標(biāo)文件生成模塊,用于對所述目標(biāo)目錄的文件數(shù)據(jù)進(jìn)行合并,生成目標(biāo)文件。 [0033] 其中,所述目標(biāo)目錄生成模塊包括:
[0034] 第一目標(biāo)目錄生成子模塊,用于獲取用戶對所述原始目錄的操作信息,重新編輯 目錄項信息,生成目標(biāo)目錄;
[0035] 第二目標(biāo)目錄生成子模塊,用于獲取用戶對所述原始目錄的不操作信息,根據(jù)原 始的目錄項信息直接生成目標(biāo)目錄。
[0036] 其中,所述目錄項信息包括:目錄項ID、目錄項名稱、父項ID、兄項ID。
[0037] 其中,所述第一目標(biāo)目錄生成子模塊包括:
[0038] 刪除單元,用于在檢測到用戶的刪除操作時,刪除已選中的目錄項;
[0039] 第一處理單元,用于判斷刪除目錄項是否有子目錄項,若有子目錄項,則將所述刪 除目錄項的所有子目錄項的父項ID修改為所述刪除目錄項的父項ID;
[0040] 第二處理單元,用于判斷所述刪除目錄項的下一目錄項與所述刪除目錄項是否為 并列關(guān)系,若為并列關(guān)系,則將所述刪除目錄項的下一目錄項的兄項ID修改為所述刪除目 錄項的兄項ID。
[0041] 其中,所述第一目標(biāo)目錄生成子模塊還包括:
[0042] 第三處理單元,用于在檢測到用戶編輯目錄項名稱的操作時,判斷新目錄項名稱 是否為空,若新目錄項名稱不為空,則將原目錄項名稱修改為新目錄項名稱;若新目錄項名 稱為空,則保留原目錄項名稱。
[0043] 其中,所述第一目標(biāo)目錄生成子模塊還包括:
[0044] 第四處理單元,用于在檢測到用戶調(diào)整目錄項位置的操作時,判斷調(diào)整目錄項的 父目錄項是否發(fā)生變化,若父目錄項變化且存在,則將新父項ID修改為當(dāng)前父目錄項的目 錄項ID;若父目錄項變化但不存在,則將新父項ID設(shè)置為0 ;
[0045] 第五處理單元,用于判斷調(diào)整目錄的兄目錄項是否發(fā)生變化,若兄目錄項變化且 存在,則將新兄項ID修改為當(dāng)前兄目錄項的目錄項ID;若兄目錄項變化但不存在,則將新 兄項ID設(shè)置為0。
[0046] 其中,所述目標(biāo)文件生成模塊包括:
[0047]目標(biāo)文件頭信息生成單元,用于生成目標(biāo)文件頭信息,所述頭信息包括:目錄信息 區(qū)數(shù)量和目錄信息區(qū)偏移量;
[0048] 文件流寫入單元,用于根據(jù)所述目標(biāo)目錄順序判斷每個文件是否需要壓縮,若需 要壓縮,則根據(jù)指定的壓縮方式進(jìn)行壓縮并將當(dāng)前文件流寫入當(dāng)前數(shù)據(jù)區(qū)尾部;若不需要 壓縮,則直接將當(dāng)前文件流寫入當(dāng)前數(shù)據(jù)區(qū)尾部;
[0049] 文件信息結(jié)構(gòu)填入單元,用于將文件信息填入文件信息結(jié)構(gòu);
[0050] 文件目錄信息區(qū)填入單元,用于根據(jù)所述目標(biāo)目錄信息生成目錄數(shù)據(jù)區(qū)數(shù)據(jù),根 據(jù)所述文件信息結(jié)構(gòu)生成文件映射數(shù)據(jù)區(qū)數(shù)據(jù),