一種文件索引組織及修復(fù)的方法及裝置制造方法
【專利摘要】本發(fā)明提供了一種文件索引組織及修復(fù)的方法及裝置,屬于數(shù)據(jù)儲(chǔ)存方法領(lǐng)域。在本發(fā)明中,首先將存儲(chǔ)介質(zhì)中的所有文件構(gòu)成一個(gè)環(huán)狀的雙向鏈表,雙向鏈表包括前向鏈表和后向鏈表;存儲(chǔ)所有文件的索引至索引信息集中,并在每個(gè)文件中備份其所對(duì)應(yīng)的索引;然后在訪問(wèn)文件的過(guò)程中,當(dāng)該文件在索引信息集中的索引與該文件的備份索引不匹配時(shí),則修復(fù)雙向鏈表;最后根據(jù)修復(fù)后的雙向鏈表重建所有文件的索引。本發(fā)明通過(guò)所述文件索引組織及修復(fù)的方法及裝置,提高了重建文件索引的效率。
【專利說(shuō)明】—種文件索引組織及修復(fù)的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)儲(chǔ)存方法領(lǐng)域,特別涉及一種文件索引組織及修復(fù)的方法及裝置。
【背景技術(shù)】
[0002]文件系統(tǒng)基于索引實(shí)現(xiàn)文件管理,通過(guò)索引定位文件。文件索引的丟失會(huì)造成文件系統(tǒng)無(wú)法再訪問(wèn)到對(duì)應(yīng)的文件,等同于丟失文件。
[0003]在文件系統(tǒng)運(yùn)行過(guò)程中,索引數(shù)據(jù)會(huì)被頻繁更新,如果環(huán)境不穩(wěn)定,例如車載環(huán)境下,抖動(dòng)、電磁振蕩或斷電等狀況頻繁發(fā)生,則較易發(fā)生索引更新過(guò)程中斷或數(shù)據(jù)在傳輸過(guò)程中被污染。在這類環(huán)境下,索引的數(shù)據(jù)完整性很容易受到破壞。
[0004]索引被破壞一方面會(huì)導(dǎo)致已有的文件丟失;另一方面,上層應(yīng)用讀取到異常索引值后,會(huì)因?yàn)闆](méi)有對(duì)應(yīng)處理流程而中斷運(yùn)行,如應(yīng)用于錄像監(jiān)控領(lǐng)域的文件系統(tǒng),必須能夠及時(shí)快速地修復(fù)受損索引,才能夠?qū)崿F(xiàn)不間斷錄像和錄像不丟失。
[0005]現(xiàn)有文件系統(tǒng)普通采用目錄層次結(jié)果的索引組織機(jī)制,結(jié)構(gòu)復(fù)雜,重建難度大。當(dāng)出現(xiàn)索引受損,只能借助離線工具,通過(guò)全硬盤遍歷文件重建索引完成修復(fù),無(wú)法實(shí)現(xiàn)快速在線自動(dòng)修復(fù)。
【發(fā)明內(nèi)容】
[0006]本發(fā)明提供了一種文件索引組織及修復(fù)的方法及裝置,提高了重建文件索引的效率。
[0007]—方面,本發(fā)明提供了一種文件索引組織及修復(fù)的方法,所述方法包括:
[0008]將存儲(chǔ)介質(zhì)中的所有文件構(gòu)成一個(gè)雙向鏈表,所述雙向鏈表包括前向鏈表和后向鏈表;
[0009]存儲(chǔ)所述所有文件的索引至索引信息集中,并在每個(gè)文件中備份其所對(duì)應(yīng)的索弓I ;
[0010]在訪問(wèn)文件的過(guò)程中,若該文件在所述索引信息集中的索引與該文件的備份索引不匹配,則修復(fù)所述雙向鏈表;
[0011]根據(jù)修復(fù)后的雙向鏈表重建所述所有文件的索引。
[0012]第二方面,本發(fā)明提供了一種文件索引組織及修復(fù)的裝置,所述裝置包括:
[0013]構(gòu)成模塊,用于將存儲(chǔ)介質(zhì)中的所有文件構(gòu)成一個(gè)雙向鏈表,所述雙向鏈表包括前向鏈表和后向鏈表;
[0014]存儲(chǔ)備份模塊,用于存儲(chǔ)所述所有文件的索引至索引信息集中,并在每個(gè)文件中備份其所對(duì)應(yīng)的索引;
[0015]修復(fù)模塊,用于在訪問(wèn)文件的過(guò)程中,若該文件在所述索引信息集中的索引與該文件的備份索引不匹配,則修復(fù)所述雙向鏈表;
[0016]重建模塊,用于根據(jù)修復(fù)后的雙向鏈表重建所述所有文件的索引。
[0017]在本發(fā)明中,由于首先將存儲(chǔ)介質(zhì)中的所有文件構(gòu)成一個(gè)環(huán)狀的雙向鏈表,雙向鏈表包括前向鏈表和后向鏈表;存儲(chǔ)所有文件的索引至索引信息集中,并在每個(gè)文件中備份其所對(duì)應(yīng)的索引;然后在訪問(wèn)文件的過(guò)程中,當(dāng)該文件在索引信息集中的索引與該文件的備份索引不匹配時(shí),則修復(fù)雙向鏈表;最后根據(jù)修復(fù)后的雙向鏈表重建所有文件的索引,因此,提高了重建文件索引的效率。
【專利附圖】
【附圖說(shuō)明】
[0018]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0019]圖1為本發(fā)明實(shí)施例一提供的文件索引組織及修復(fù)的方法一種流程圖;
[0020]圖2為本發(fā)明實(shí)施例二提供的文件索引組織及修復(fù)的方法一種流程圖;
[0021]圖3為本發(fā)明實(shí)施例二提供的文件索引組織及修復(fù)的方法所涉及的文件構(gòu)成雙向鏈表的不意圖;
[0022]圖4為本發(fā)明實(shí)施例二提供的文件索引組織及修復(fù)的方法所涉及的文件構(gòu)成后向鏈表的不意圖;
[0023]圖5為本發(fā)明實(shí)施例二提供的文件索引組織及修復(fù)的方法所涉及的文件構(gòu)成前向鏈表的不意圖;
[0024]圖6為本發(fā)明實(shí)施例二提供的文件索引組織及修復(fù)的方法所涉及的存儲(chǔ)所有文件的索引并在每個(gè)文件中備份該文件的索引的示意圖;
[0025]圖7為本發(fā)明實(shí)施例三提供的文件索引組織及修復(fù)的裝置一種結(jié)構(gòu)示意圖;
[0026]圖8為本發(fā)明實(shí)施例三提供的一種文件索引組織及修復(fù)的裝置修復(fù)模塊結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0027]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0028]實(shí)施例一:
[0029]本發(fā)明實(shí)施例一提供了一種文件索引組織及修復(fù)的方法,參見(jiàn)圖1,文件索引組織及修復(fù)的方法包括以下步驟:
[0030]101.將存儲(chǔ)介質(zhì)中的所有文件構(gòu)成一個(gè)雙向鏈表,雙向鏈表包括前向鏈表和后向鏈表。
[0031]102.存儲(chǔ)所有文件的索引至索引信息集中,并在每個(gè)文件中備份其所對(duì)應(yīng)的索引。
[0032]103.在訪問(wèn)文件的過(guò)程中,若該文件在索引信息集中的索引與該文件的備份索引不匹配,則修復(fù)雙向鏈表。
[0033]104.根據(jù)修復(fù)后的雙向鏈表重建所有文件的索引。
[0034]例如,硬盤中共有5個(gè)文件,將該5個(gè)文件構(gòu)成一個(gè)雙向鏈表,雙向鏈表包括前向鏈表和后向鏈表;存儲(chǔ)該5個(gè)文件的索引至索引信息集中,并在每個(gè)文件中備份其所對(duì)應(yīng)的索引;在訪問(wèn)文件2的過(guò)程中,若文件2在索引信息集中的索引與文件2的備份索引不匹配,則修復(fù)雙向鏈表;根據(jù)修復(fù)后的雙向鏈表重建該5個(gè)文件的索引。
[0035]本實(shí)施例通過(guò)首先將存儲(chǔ)介質(zhì)中的所有文件構(gòu)成一個(gè)環(huán)狀的雙向鏈表,雙向鏈表包括前向鏈表和后向鏈表;存儲(chǔ)所有文件的索引至索引信息集中,并在每個(gè)文件中備份其所對(duì)應(yīng)的索引;然后在訪問(wèn)文件的過(guò)程中,當(dāng)該文件在索引信息集中的索引與該文件的備份索引不匹配時(shí),則修復(fù)雙向鏈表;最后根據(jù)修復(fù)后的雙向鏈表重建所有文件的索引,因此,提高了重建文件索引的效率。
[0036]實(shí)施例二:
[0037]本發(fā)明實(shí)施例二提供了一種文件索引組織及修復(fù)的方法,參見(jiàn)圖2,文件索引組織及修復(fù)的方法包括以下步驟:
[0038]201.在每個(gè)文件中增加一個(gè)前向指針和一個(gè)后向指針,前向指針指向前一個(gè)文件的地址以構(gòu)成前向鏈表,后向指針指向后一個(gè)文件的地址以構(gòu)成后向鏈表。如圖3所示,上述前向鏈表32和上述后向鏈表31均為環(huán)形;如圖4所不,后向鏈表中第一個(gè)文件(文件I)的前一個(gè)文件為最后一個(gè)文件(文件5),后向鏈表由文件5指向文件4,文件4指向文件3,文件3指向文件2,文件2指向文件1,文件I再指向文件5以形成一個(gè)環(huán)形的鏈表;如圖5所示,前向鏈表中最后一個(gè)文件(文件5)的后一個(gè)文件為第一個(gè)文件(文件I),前向鏈表由文件I指向文件2,文件2指向文件3,文件3指向文件4,文件4指向文件5,文件5再指向文件I以形成另一個(gè)環(huán)形的鏈表。
[0039]202.以一維數(shù)組的形式存儲(chǔ)所有文件的索引至索引信息集中,并在每個(gè)文件中備份其所對(duì)應(yīng)的索引。
[0040]203.在訪問(wèn)文件過(guò)程中,若該文件在索引信息集中的索引與該文件的備份索引不匹配,則設(shè)定第一目標(biāo)文件為第一個(gè)文件。
[0041]204.判斷第一目標(biāo)文件的后向指針是否指向后一個(gè)文件,若是,則執(zhí)行步驟205,若否,則執(zhí)行步驟207。
[0042]205.將第一目標(biāo)文件更新為后一個(gè)文件,判斷更新后的第一目標(biāo)文件是否為第一個(gè)文件,若是,則執(zhí)行206,若否,則執(zhí)行步驟204。
[0043]206.根據(jù)后向鏈表修復(fù)前向鏈表,并終止步驟。
[0044]207.將第一目標(biāo)文件作為斷點(diǎn)文件。
[0045]208.設(shè)定第二目標(biāo)文件為第一個(gè)文件。
[0046]209.若第二目標(biāo)文件的前向指針指向前一個(gè)文件,則將第二目標(biāo)文件更新為前一個(gè)文件。
[0047]210.判斷更新后的第二目標(biāo)文件是否為斷點(diǎn)文件,若是,則執(zhí)行步驟211,若否則執(zhí)行步驟209。
[0048]211.根據(jù)前向鏈表中的第一個(gè)文件至斷點(diǎn)文件修復(fù)后向鏈表中的斷點(diǎn)文件至第一個(gè)文件,根據(jù)后向鏈表中的第一個(gè)文件至斷點(diǎn)文件修復(fù)前向鏈表中的斷點(diǎn)文件至第一個(gè)文件。
[0049]212.遍歷前向鏈表或后向鏈表以重建所有文件的索引。
[0050]步驟203至步驟211為修復(fù)雙向鏈表,通過(guò)先沿著前向鏈表從第一個(gè)文件開(kāi)始向后遍歷以尋找斷點(diǎn)文件,再沿著后向鏈表從第一個(gè)文件開(kāi)始遍歷直至找到斷點(diǎn)文件,最后根據(jù)前向鏈表中的第一個(gè)文件至斷點(diǎn)文件修復(fù)后向鏈表中的斷點(diǎn)文件至第一個(gè)文件,根據(jù)后向鏈表中的第一個(gè)文件至斷點(diǎn)文件修復(fù)前向鏈表中的斷點(diǎn)文件至第一個(gè)文件,完成雙向鏈表的修復(fù)。
[0051]例如,硬盤中共有5個(gè)文件,在每個(gè)文件中增加一個(gè)前向指針和一個(gè)后向指針,后向指針指向后一個(gè)文件的地址以構(gòu)成后向鏈表,如圖4所示;前向指針指向前一個(gè)文件的地址以構(gòu)成前向鏈表,如圖5所示;以一維數(shù)組的形式存儲(chǔ)該5個(gè)文件的索引至索引信息集中,并在每個(gè)文件中備份其所對(duì)應(yīng)的索引,如圖6所示;在訪問(wèn)文件(文件2)過(guò)程中,若文件2在索引信息集中的索引與文件2的備份索引不匹配,則設(shè)定第一目標(biāo)文件為文件I ;判斷第一目標(biāo)文件(文件I)的后向指針是否指向后一個(gè)文件(文件2);當(dāng)判斷為是時(shí),將第一目標(biāo)文件更新為后一個(gè)文件(文件2),判斷更新后的第一目標(biāo)文件(文件2)是否為第一個(gè)文件(文件I);當(dāng)判斷為否時(shí),判斷第一目標(biāo)文件(文件2)的后向指針是否指向后一個(gè)文件(文件3);當(dāng)判斷為否時(shí),將第一目標(biāo)文件(文件2)作為斷點(diǎn)文件;再設(shè)定第二目標(biāo)文件為第一個(gè)文件(文件1),若第二目標(biāo)文件(文件I)的前向指針指向前一個(gè)文件(文件5),則將第二目標(biāo)文件更新為前一個(gè)文件(文件5);判斷第二目標(biāo)文件是否為斷點(diǎn)文件(文件2),當(dāng)判斷為否時(shí),重復(fù)執(zhí)行若第二目標(biāo)文件的前向指針指向前一個(gè)文件,則將第二目標(biāo)文件更新為前一個(gè)文件步驟,直至當(dāng)?shù)诙繕?biāo)文件為文件2時(shí)不再滿足第二目標(biāo)文件不為斷點(diǎn)文件(文件2)的前提條件,并根據(jù)前向鏈表中的第一個(gè)文件(文件I)至斷點(diǎn)文件(文件2)修復(fù)后向鏈表中斷點(diǎn)文件(文件2)至第一個(gè)文件(文件I),根據(jù)后向鏈表中的第一個(gè)文件(文件I)至斷點(diǎn)文件(文件2)修復(fù)前向鏈表中的斷點(diǎn)文件(文件2)至第一個(gè)文件(文件I);遍歷前向鏈表或后向鏈表以重建該5個(gè)文件的索引。
[0052]本實(shí)施例通過(guò)首先將存儲(chǔ)介質(zhì)中的所有文件構(gòu)成一個(gè)環(huán)狀的雙向鏈表,雙向鏈表包括前向鏈表和后向鏈表;存儲(chǔ)所有文件的索引至索引信息集中,并在每個(gè)文件中備份其所對(duì)應(yīng)的索引;然后在訪問(wèn)文件的過(guò)程中,當(dāng)該文件在索引信息集中的索引與該文件的備份索引不匹配時(shí),從第一個(gè)文件遍歷前向鏈表,找到斷點(diǎn)文件,再?gòu)牡谝粋€(gè)文件遍歷后向鏈表至斷點(diǎn)文件處以修復(fù)雙向鏈表;最后遍歷前向鏈表或后向鏈表以重建所有文件的索引,因此,提高了重建文件索引的效率。
[0053]實(shí)施例三:
[0054]本發(fā)明實(shí)施例三提供了一種文件索引組織及修復(fù)的裝置,如圖7所示,文件索引組織及修復(fù)的裝置30包括構(gòu)成模塊310、存儲(chǔ)備份模塊320、修復(fù)模塊330和重建模塊340。
[0055]構(gòu)成模塊310,用于將存儲(chǔ)介質(zhì)中的所有文件構(gòu)成一個(gè)雙向鏈表,雙向鏈表包括前向鏈表和后向鏈表;
[0056]存儲(chǔ)備份模塊320,用于存儲(chǔ)所有文件的索引至索引信息集中,并在每個(gè)文件中備份其所對(duì)應(yīng)的索引;
[0057]修復(fù)模塊330,用于在訪問(wèn)文件過(guò)程中,若該文件在索引信息集中的索引與該文件的備份索引不匹配,則修復(fù)雙向鏈表;
[0058]重建模塊340,用于根據(jù)修復(fù)后的雙向鏈表重建所有文件的索引。
[0059]構(gòu)成模塊310將存儲(chǔ)介質(zhì)中的所有文件構(gòu)成一個(gè)雙向鏈表具體為:在每個(gè)文件中增加一個(gè)前向指針和一個(gè)后向指針,前向指針指向前一個(gè)文件的地址以構(gòu)成前向鏈表,后向指針指向后Iv文件的地址以構(gòu)成后向鏈表。
[0060]存儲(chǔ)備份模塊320存儲(chǔ)所有文件的索引至索引信息集中具體為:以一維數(shù)組的形式存儲(chǔ)所有文件的索引至索引信息集中。
[0061]重建模塊340根據(jù)修復(fù)后的雙向鏈表重建所有文件的索引具體為:遍歷前向鏈表或后向鏈表以重建所有文件的索引。
[0062]其中,如圖8所示,修復(fù)模塊330包括第一目標(biāo)文件設(shè)定單元331、第一判斷單元332、第二判斷單元333、第一修復(fù)單元334、斷點(diǎn)文件設(shè)定單元335、第二目標(biāo)文件設(shè)定單元336、第一設(shè)定單元337、第三判斷單元338和第二修復(fù)單元339。
[0063]第一目標(biāo)文件設(shè)定單元331,用于設(shè)定第一目標(biāo)文件為第一個(gè)文件;
[0064]第一判斷單元332,用于判斷第一目標(biāo)文件的后向指針是否指向后一個(gè)文件;
[0065]第二判斷單元333,用于將第一目標(biāo)文件更新為后一個(gè)文件,判斷更新后的第一目標(biāo)文件是否為第一個(gè)文件;
[0066]第一修復(fù)單兀334,用于根據(jù)后向鏈表修復(fù)前向鏈表;
[0067]斷點(diǎn)文件設(shè)定單元335,用于將第一目標(biāo)文件作為斷點(diǎn)文件;
[0068]第二目標(biāo)文件設(shè)定單元336,用于設(shè)定第二目標(biāo)文件為第一個(gè)文件;
[0069]第一設(shè)定單元337,用于若第二目標(biāo)文件的前向指針指向前一個(gè)文件,則將第二目標(biāo)文件更新為前一個(gè)文件;
[0070]第三判斷單元338,用于判斷更新后的第二目標(biāo)文件是否為斷點(diǎn)文件;
[0071]第二修復(fù)單元339,用于根據(jù)前向鏈表中的第一個(gè)文件至斷點(diǎn)文件修復(fù)后向鏈表中的斷點(diǎn)文件至第一個(gè)文件,根據(jù)后向鏈表中的第一個(gè)文件至斷點(diǎn)文件修復(fù)前向鏈表中的斷點(diǎn)文件至第一個(gè)文件。
[0072]本實(shí)施例通過(guò)首先將存儲(chǔ)介質(zhì)中的所有文件構(gòu)成一個(gè)環(huán)狀的雙向鏈表,雙向鏈表包括前向鏈表和后向鏈表;存儲(chǔ)所有文件的索引至索引信息集中,并在每個(gè)文件中備份其所對(duì)應(yīng)的索引;然后在訪問(wèn)文件的過(guò)程中,當(dāng)該文件在索引信息集中的索引與該文件的備份索引不匹配時(shí),則修復(fù)雙向鏈表;最后根據(jù)修復(fù)后的雙向鏈表重建所有文件的索引,因此,提高了重建文件索引的效率。
[0073]上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
[0074]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過(guò)硬件來(lái)完成,也可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
[0075]以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種文件索引組織及修復(fù)的方法,其特征在于,所述方法包括: 將存儲(chǔ)介質(zhì)中的所有文件構(gòu)成一個(gè)雙向鏈表,所述雙向鏈表包括前向鏈表和后向鏈表; 存儲(chǔ)所述所有文件的索引至索引信息集中,并在每個(gè)文件中備份其所對(duì)應(yīng)的索引; 在訪問(wèn)文件的過(guò)程中,若該文件在所述索引信息集中的索引與該文件的備份索引不匹配,則修復(fù)所述雙向鏈表; 根據(jù)修復(fù)后的雙向鏈表重建所述所有文件的索引。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將硬盤中的所有文件構(gòu)成一個(gè)雙向鏈表的步驟具體為: 在每個(gè)文件中增加一個(gè)前向指針和一個(gè)后向指針,所述前向指針指向前一個(gè)文件的地址以構(gòu)成如向鏈表,所述后向指針指向后Iv文件的地址以構(gòu)成后向鏈表。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述存儲(chǔ)所述所有文件的索引至索引信息集中的步驟具體為: 以一維數(shù)組的形式存儲(chǔ)所述所有文件的索引至索引信息集中。
4.根據(jù)權(quán)利要求1所述的休眠控制方法,其特征在于,所述修復(fù)所述雙向鏈表的步驟包括以下步驟: A.設(shè)定第一目標(biāo)文件為第一個(gè)文件; B.判斷所述第一目標(biāo)文件的后向指針是否指向后一個(gè)文件,若是,則執(zhí)行步驟C,若否,則執(zhí)行步驟E ; C.將所述第一目標(biāo)文件更新為所述后一個(gè)文件,判斷更新后的所述第一目標(biāo)文件是否為所述第一個(gè)文件,若是,則執(zhí)行D,若否,則執(zhí)行步驟B ; D.根據(jù)所述后向鏈表修復(fù)所述前向鏈表,并終止步驟; E.將所述第一目標(biāo)文件作為斷點(diǎn)文件; F.設(shè)定第二目標(biāo)文件為所述第一個(gè)文件; G.若所述第二目標(biāo)文件的前向指針指向前一個(gè)文件,則將所述第二目標(biāo)文件更新為所述前一個(gè)文件; H.判斷更新后的所述第二目標(biāo)文件是否為所述斷點(diǎn)文件,若是,則執(zhí)行步驟I,若否則執(zhí)行步驟G ; 1.根據(jù)所述前向鏈表中的所述第一個(gè)文件至所述斷點(diǎn)文件修復(fù)所述后向鏈表中的所述斷點(diǎn)文件至所述第一個(gè)文件,根據(jù)所述后向鏈表中的所述第一個(gè)文件至所述斷點(diǎn)文件修復(fù)所述前向鏈表中的所述斷點(diǎn)文件至所述第一個(gè)文件。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)修復(fù)后的雙向鏈表重建所述所有文件的索引的步驟具體為: 遍歷所述前向鏈表或所述后向鏈表以重建所述所有文件的索引至所述索引信息集中。
6.一種文件索引組織及修復(fù)的裝置,其特征在于,所述裝置包括: 構(gòu)成模塊,用于將存儲(chǔ)介質(zhì)中的所有文件構(gòu)成一個(gè)雙向鏈表,所述雙向鏈表包括前向鏈表和后向鏈表; 存儲(chǔ)備份模塊,用于存儲(chǔ)所述所有文件的索引至索引信息集中,并在每個(gè)文件中備份其所對(duì)應(yīng)的索引; 修復(fù)模塊,用于在訪問(wèn)文件的過(guò)程中,若該文件在所述索引信息集中的索引與該文件的備份索引不匹配,則修復(fù)所述雙向鏈表; 重建模塊,用于根據(jù)修復(fù)后的雙向鏈表重建所述所有文件的索引。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述構(gòu)成模塊將硬盤中的所有文件構(gòu)成一個(gè)雙向鏈表具體為: 在每個(gè)文件中增加一個(gè)前向指針和一個(gè)后向指針,所述前向指針指向前一個(gè)文件的地址以構(gòu)成前向鏈表,所述后向指針指向后一個(gè)文件的地址以構(gòu)成后向鏈表,第一個(gè)文件的前一個(gè)文件為最后一個(gè)文件,所述最后一個(gè)文件的后一個(gè)文件為所述第一個(gè)文件。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述存儲(chǔ)備份模塊存儲(chǔ)所述所有文件的索引至索引信息集中具體為: 以一維數(shù)組的形式存儲(chǔ)所述所有文件的索引至索引信息集中。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述修復(fù)模塊包括: 第一目標(biāo)文件設(shè)定單元,用于設(shè)定第一目標(biāo)文件為第一個(gè)文件; 第一判斷單元,用于判斷所述第一目標(biāo)文件的后向指針是否指向后一個(gè)文件; 第二判斷單元,用于將所述第一目標(biāo)文件更新為所述后一個(gè)文件,判斷更新后的所述第一目標(biāo)文件是否為所述第一個(gè)文件; 第一修復(fù)單兀,用于根據(jù)所述后向鏈表修復(fù)所述前向鏈表; 斷點(diǎn)文件設(shè)定單元,用于將所述第一目標(biāo)文件作為斷點(diǎn)文件; 第二目標(biāo)文件設(shè)定單元,用于設(shè)定第二目標(biāo)文件為所述第一個(gè)文件; 第一設(shè)定單元,用于若所述第二目標(biāo)文件的前向指針指向前一個(gè)文件,則將所述第二目標(biāo)文件更新為所述前一個(gè)文件; 第三判斷單元,用于判斷更新后的所述第二目標(biāo)文件是否為所述斷點(diǎn)文件; 第二修復(fù)單元,用于根據(jù)所述前向鏈表中的所述第一個(gè)文件至所述斷點(diǎn)文件修復(fù)所述后向鏈表中的所述斷點(diǎn)文件至所述第一個(gè)文件,根據(jù)所述后向鏈表中的所述第一個(gè)文件至所述斷點(diǎn)文件修復(fù)所述前向鏈表中的所述斷點(diǎn)文件至所述第一個(gè)文件。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述重建模塊根據(jù)修復(fù)后的雙向鏈表重建所述所有文件的索引具體為: 遍歷所述前向鏈表或所述后向鏈表以重建所述所有文件的索引。
【文檔編號(hào)】G06F17/30GK104239564SQ201410510095
【公開(kāi)日】2014年12月24日 申請(qǐng)日期:2014年9月28日 優(yōu)先權(quán)日:2014年9月28日
【發(fā)明者】黃凱明, 孫繼業(yè), 望西淀 申請(qǐng)人:深圳市銳明視訊技術(shù)有限公司