[發(fā)明專利]一種CPIO文件的操作方法及裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201410143816.X | 申請(qǐng)日: | 2014-04-10 |
| 公開(kāi)(公告)號(hào): | CN104978355B | 公開(kāi)(公告)日: | 2018-09-25 |
| 發(fā)明(設(shè)計(jì))人: | 蔡海群;李國(guó)斌;楊敏 | 申請(qǐng)(專利權(quán))人: | 炬芯(珠海)科技有限公司 |
| 主分類號(hào): | G06F17/30 | 分類號(hào): | G06F17/30 |
| 代理公司: | 北京同達(dá)信恒知識(shí)產(chǎn)權(quán)代理有限公司 11291 | 代理人: | 黃志華 |
| 地址: | 519085 廣東省珠海市唐*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 cpio 文件 操作方法 裝置 | ||
1.一種CPIO文件的操作方法,其特征在于,包括:
按照二進(jìn)制文件的解析方式遍歷包括多個(gè)子文件的CPIO文件,識(shí)別并記錄每個(gè)子文件的文件頭及該子文件相對(duì)于CPIO文件起始位置的絕對(duì)偏移,所述文件頭包括子文件的文件名及文件大小;
按照子文件的順序在內(nèi)存中創(chuàng)建包括多個(gè)條目的條目索引表,其中每一個(gè)條目包括一個(gè)子文件的文件頭及絕對(duì)偏移;
每次接收到操作指令時(shí),根據(jù)內(nèi)存中的條目索引表,定位需要進(jìn)行操作的子文件的位置;
對(duì)相應(yīng)位置的子文件進(jìn)行操作,當(dāng)確定操作后條目改變時(shí),更新內(nèi)存中的條目索引表;
其中,所述子文件的形式為文件或子目錄,當(dāng)接收到的操作指令為對(duì)文件的內(nèi)容的刪除操作指令時(shí),對(duì)相應(yīng)位置的子文件進(jìn)行操作,當(dāng)確定操作后條目改變時(shí),更新內(nèi)存中的條目索引表,具體包括:
刪除相應(yīng)位置的子文件,將該子文件之后的所有子文件前移;
完成前移后重新遍歷CPIO文件更新內(nèi)存中的條目索引表;
當(dāng)接收到的操作指令為對(duì)子目錄的刪除操作指令時(shí),對(duì)相應(yīng)位置的子文件進(jìn)行操作,當(dāng)確定操作后條目改變時(shí),更新內(nèi)存中的條目索引表,具體包括:
刪除相應(yīng)位置的子目錄及其所在條目,將該子目錄之后的所有子文件前移,完成前移后確定操作后條目改變并更新內(nèi)存中的條目索引表;
重復(fù)如下步驟至查找不到包含刪除的子目錄的子文件:重新遍歷條目索引表,確定子文件的文件名中包含刪除的子目錄時(shí),刪除該子文件,將該子文件之后的所有子文件前移,完成前移后確定操作后條目改變并更新內(nèi)存中的條目索引表。
2.如權(quán)利要求1所述的方法,其特征在于,通過(guò)如下任一個(gè)或任意多個(gè)操作指令完成對(duì)CPIO文件的操作:
讀操作指令;重命名操作指令;對(duì)文件內(nèi)容的編輯操作指令;刪除操作指令;新增操作指令。
3.如權(quán)利要求2所述的方法,其特征在于,當(dāng)接收到操作指令為讀操作指令或重命名操作指令或?qū)ξ募?nèi)容的編輯操作指令或刪除操作指令時(shí),定位需要進(jìn)行操作的子文件的位置,具體包括:
根據(jù)需要進(jìn)行操作的子文件的文件名,在條目索引表查找到包含該文件名的條目,根據(jù)該條目中的絕對(duì)偏移定位需要進(jìn)行操作的子文件位置;
當(dāng)接收到的操作指令為新增操作指令,定位需要進(jìn)行操作的子文件的位置,具體包括:
根據(jù)最后一個(gè)條目中文件頭中文件的大小及絕對(duì)偏移,定位CPIO文件的尾部位置為需要進(jìn)行操作的子文件位置。
4.如權(quán)利要求2或3所述的方法,其特征在于,當(dāng)接收到的操作指令為讀操作指令時(shí),確定操作后條目不會(huì)改變,對(duì)相應(yīng)位置的子文件進(jìn)行操作,具體包括:
從絕對(duì)偏移的位置讀取文件頭,根據(jù)文件頭中的文件大小讀取文件內(nèi)容;
當(dāng)接收到的操作指令為重命名操作指令時(shí),對(duì)相應(yīng)位置的子文件進(jìn)行操作,當(dāng)確定操作后條目改變時(shí),更新內(nèi)存中的條目索引表,具體包括:
若重命名后文件名長(zhǎng)度不變,則修改文件頭中的相應(yīng)的文件名,若重命名后文件名長(zhǎng)度變短或變長(zhǎng),則將相應(yīng)的文件名對(duì)應(yīng)的子文件的文件內(nèi)容及之后的所有子文件前移或后移,修改文件頭中的相應(yīng)的文件名;
若重命名后文件名長(zhǎng)度不變,則同步更新條目索引表中的文件名,若重命名后文件名長(zhǎng)度變短或變長(zhǎng),則重新遍歷CPIO文件更新內(nèi)存中的條目索引表;
當(dāng)接收到的操作指令為對(duì)文件內(nèi)容的編輯操作指令時(shí),對(duì)相應(yīng)位置的子文件進(jìn)行操作,當(dāng)確定操作后條目改變時(shí),更新內(nèi)存中的條目索引表,具體包括:
若編輯后文件內(nèi)容長(zhǎng)度不變,則直接覆蓋相應(yīng)的文件內(nèi)容,若編輯后文件內(nèi)容長(zhǎng)度變長(zhǎng)或變短,則先將相應(yīng)的文件內(nèi)容之后所有的CPIO文件后移或前移,再覆蓋相應(yīng)的文件內(nèi)容;
若編輯后文件內(nèi)容長(zhǎng)度變長(zhǎng)或變短,則修改文件頭中的文件大小,并重新遍歷CPIO文件更新內(nèi)存中的條目索引表;
當(dāng)接收到的操作指令為新增操作指令時(shí),對(duì)相應(yīng)位置的子文件進(jìn)行操作,當(dāng)確定操作后條目改變時(shí),更新內(nèi)存中的條目索引表,具體包括:
從CPIO文件的尾部位置開(kāi)始,存儲(chǔ)新的子文件;
根據(jù)該子文件的文件頭,在條目索引表中增加該子文件的條目。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于炬芯(珠海)科技有限公司,未經(jīng)炬芯(珠海)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410143816.X/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F17-00 特別適用于特定功能的數(shù)字計(jì)算設(shè)備或數(shù)據(jù)處理設(shè)備或數(shù)據(jù)處理方法
G06F17-10 .復(fù)雜數(shù)學(xué)運(yùn)算的
G06F17-20 .處理自然語(yǔ)言數(shù)據(jù)的
G06F17-30 .信息檢索;及其數(shù)據(jù)庫(kù)結(jié)構(gòu)
G06F17-40 .數(shù)據(jù)的獲取和記錄
G06F17-50 .計(jì)算機(jī)輔助設(shè)計(jì)





