專利名稱:在文件系統(tǒng)中存儲(chǔ)和管理附加數(shù)據(jù)的設(shè)備和方法
技術(shù)領(lǐng)域:
與本發(fā)明一致的設(shè)備和方法涉及在文件系統(tǒng)中對(duì)附加數(shù)據(jù)的存儲(chǔ)和管理。更具體地講,本發(fā)明涉及一種能夠使用文件分配表(FAT)文件系統(tǒng)的未使用區(qū)域來存儲(chǔ)附加數(shù)據(jù)而不對(duì)與其他文件系統(tǒng)的兼容性造成不利影響的設(shè)備和方法。
背景技術(shù):
在當(dāng)前文件系統(tǒng)中,文件分配表(FAT)文件系統(tǒng)被最廣泛的使用在移動(dòng)裝置和Windows環(huán)境中,并且與其他文件系統(tǒng)的兼容性最好。FAT組織硬盤的存儲(chǔ)空間。該表包括關(guān)于硬盤中的文件的信息,并具有用于標(biāo)識(shí)定位單個(gè)文件的每段的位置的一系列號(hào)碼。與書中的內(nèi)容表類似,設(shè)計(jì)FAT系統(tǒng),從而操作系統(tǒng)可以知道其中硬盤文件或目錄的簇被記錄的位置。
如圖1所示,F(xiàn)AT文件系統(tǒng)包括數(shù)據(jù)塊130,在其中存儲(chǔ)數(shù)據(jù);和FAT120,指出使用或未使用數(shù)據(jù)塊130以及塊之間的關(guān)系?;诖?32來管理數(shù)據(jù)塊130,并且每簇對(duì)應(yīng)于FAT120的每個(gè)單元122。由稱為目錄表項(xiàng)110的數(shù)據(jù)結(jié)構(gòu)來表示每一文件。目錄表項(xiàng)包括文件名稱、文件屬性、文件產(chǎn)生日期、寫文件和訪問文件許可、指示文件大小的大小變量和指示文件開始簇的開始簇變量。文件的下一簇是一部分文件被寫入的簇。如上所述,F(xiàn)AT表示基于簇散步的和在數(shù)據(jù)塊中以映射列表格式存儲(chǔ)的文件的數(shù)據(jù)的位置,并指示是否使用相應(yīng)的簇。
FAT120存儲(chǔ)指示在相應(yīng)數(shù)據(jù)塊中映射到文件的數(shù)據(jù)是否存在的值,以及如果存在,該數(shù)據(jù)是否為文件的最后部分。在圖1中,符號(hào)“X”指示相應(yīng)的簇為空,符號(hào)“EOF”(文件結(jié)束)指示相應(yīng)的數(shù)據(jù)為文件的數(shù)據(jù)的最后部分。另外,數(shù)字指示下一簇的號(hào)碼。
在FAT文件系統(tǒng)中,通過以下操作來創(chuàng)建文件和寫數(shù)據(jù)。分配與新文件相應(yīng)的目錄表項(xiàng)。為了寫文件數(shù)據(jù),操作系統(tǒng)搜索數(shù)據(jù)塊的空簇,并將它分配給新文件。操作系統(tǒng)在與分配的簇對(duì)應(yīng)的FAT的單元中寫入“EOF”,以指示該簇分配給所述文件,隨后在相應(yīng)簇中記錄數(shù)據(jù)。通過在目錄表項(xiàng)的開始簇變量中寫入簇號(hào),可以知道所述文件的第一簇。
當(dāng)文件大小大于數(shù)據(jù)塊的單個(gè)簇時(shí),分配另一空簇,在與第一簇相應(yīng)的FAT的元素中寫入分配的簇的號(hào),并且在與新分配的簇相應(yīng)的FAT的單元中寫入“EOF”。在所述文件的最后簇中,可寫入大小比所述簇小的數(shù)據(jù),并且在目錄表項(xiàng)的大小變量中寫入文件大小。
在FAT文件系統(tǒng)中,通過以下操作來讀取文件。使用目標(biāo)文件的名字來搜索將被讀取的文件(“目標(biāo)文件”)的目錄表項(xiàng)。從在開始簇變量中記錄的簇到寫有“EOF”的簇讀取在目錄表項(xiàng)中與大小值同樣多的數(shù)據(jù)。
圖2示出根據(jù)傳統(tǒng)技術(shù)的在文件系統(tǒng)的目錄表項(xiàng)中文件信息的存儲(chǔ)。設(shè)計(jì)這種在FAT文件系統(tǒng)中的存儲(chǔ)方式來寫文件信息。目錄表項(xiàng)110被分成文件數(shù)據(jù)部分和使用(或未使用)部分以指定在文件數(shù)據(jù)部分中存儲(chǔ)的數(shù)據(jù)當(dāng)前是否可用。
如圖2所示,所述文件系統(tǒng)通過區(qū)別目錄表項(xiàng)的文件數(shù)據(jù)是否可用來確定文件是否存在。在文件系統(tǒng)的這種處理中,即使存在很多未使用的部分,也沒有文件系統(tǒng)兼容性問題。在FAT文件系統(tǒng)中,未使用的部分被忽略,僅處理可用的部分。
與一般操作系統(tǒng)(OS)的大多數(shù)文件系統(tǒng)類似,所述FAT也是表示小文件和大文件兩者的通用系統(tǒng),并考慮由于修改文件的記錄數(shù)據(jù)而引起的數(shù)據(jù)插入和大小變化。然而,與這種FAT文件系統(tǒng)類似的固定存儲(chǔ)方法的文件系統(tǒng)不具有恢復(fù)和存儲(chǔ)附加數(shù)據(jù)的功能。另外,當(dāng)定位或讀取文件或目錄并在文件中移動(dòng)寫入位置時(shí),必須從開始進(jìn)行搜索,從而大大降低大規(guī)模存儲(chǔ)裝置的速度。在FAT32中,F(xiàn)AT盤分區(qū)的大小是32kB×4B(32bit)。假設(shè)硬盤大小是80GB,則需要10MB(80GB/(32kB×4B))FAT分區(qū)。為了找到空簇,需要搜索至少10MB。
FAT文件系統(tǒng)以映射列表的形式表示數(shù)據(jù)鏈。然而,為了播放多媒體,應(yīng)該支持所有前進(jìn)/后退高速搜索模式、倒放和基于幀的前進(jìn)/后退搜索。FAT文件系統(tǒng)僅支持單項(xiàng)映射列表。因此,應(yīng)該從文件的開始簇進(jìn)行搜索,以從特定文件位置在反方向?qū)⑽募羔樢苿?dòng)與固定偏移同樣多的距離。
然而,F(xiàn)AT文件系統(tǒng)在定位簇映射之后僅可讀取在文件的后部的相應(yīng)數(shù)據(jù)。在這種情況下,定位簇信息會(huì)引起性能的嚴(yán)重降低。在FAT文件系統(tǒng)中,為了存儲(chǔ)長(zhǎng)文件名,額外使用多個(gè)文件和目錄數(shù)據(jù)區(qū)域。在這種情況下,為了定位文件,應(yīng)該處理所有處于這些區(qū)域中的數(shù)據(jù)。FAT文件系統(tǒng)也不具有寫入文件恢復(fù)信息的功能,因此,當(dāng)電源突然中斷時(shí)沒被存儲(chǔ)的數(shù)據(jù)丟失。
發(fā)明內(nèi)容
因此,本發(fā)明的目的在于解決與相關(guān)技術(shù)關(guān)聯(lián)的以上和其他問題。本發(fā)明的一方面提供一種在文件系統(tǒng)中存儲(chǔ)和管理附加數(shù)據(jù)的設(shè)備和方法,其中,對(duì)于目錄表項(xiàng)的文件數(shù)據(jù)使用未使用區(qū)域來存儲(chǔ)附加數(shù)據(jù),從而在FAT文件系統(tǒng)中,提高文件系統(tǒng)性能,而不降低文件系統(tǒng)的兼容性。
本發(fā)明的另一方面提供一種快速訪問存儲(chǔ)的附加數(shù)據(jù)的設(shè)備和方法。
本發(fā)明的另一方面提供一種使用文件中的附加位置數(shù)據(jù)來快速移動(dòng)文件中讀取和寫入位置的設(shè)備和方法。
本發(fā)明的另一方面提供一種使用文件屬性數(shù)據(jù)來分析文件屬性的設(shè)備和方法。
本發(fā)明的另一方面提供一種使用文件名的附加數(shù)據(jù)來容易地定位具有長(zhǎng)文件名的文件的設(shè)備和方法。
本發(fā)明的另一方面提供一種使用目錄的附加數(shù)據(jù)來容易地獲得目錄數(shù)量或每一目錄大小的設(shè)備和方法。
本發(fā)明的另一方面提供一種使用用于恢復(fù)文件的附加數(shù)據(jù)來容易地恢復(fù)文件的設(shè)備和方法。
本發(fā)明將不限于上述目的。通過以下描述,本領(lǐng)域技術(shù)人員將清楚地理解在其中所述的其他目的。
根據(jù)本發(fā)明的一方面,提供一種在文件系統(tǒng)中存儲(chǔ)和管理附加數(shù)據(jù)的設(shè)備,包括搜索單元,在目錄表項(xiàng)中搜索未使用區(qū)域;存儲(chǔ)單元,在未使用區(qū)域中存儲(chǔ)附加數(shù)據(jù);和附加數(shù)據(jù)管理單元,使用附加數(shù)據(jù)的簽名和校驗(yàn)碼定位附加數(shù)據(jù)的位置。
根據(jù)本發(fā)明的另一方面,提供一種方法,包括(a)在目錄表項(xiàng)中搜索未使用區(qū)域,(b)在未使用區(qū)域中存儲(chǔ)附加數(shù)據(jù),(c)使用附加數(shù)據(jù)的簽名和校驗(yàn)碼來定位附加數(shù)據(jù)的位置。
通過參照附圖進(jìn)行的對(duì)優(yōu)選實(shí)施例的詳細(xì)描述,本發(fā)明的以上和其他特點(diǎn)和優(yōu)點(diǎn)將變得更加清楚,其中圖1示出根據(jù)本發(fā)明的使用文件分配表(FAT)的文件系統(tǒng);圖2示出根據(jù)傳統(tǒng)技術(shù)的存儲(chǔ)文件數(shù)據(jù)的狀態(tài);圖3是示出根據(jù)本發(fā)明的示例性實(shí)施例的在文件系統(tǒng)中存儲(chǔ)和管理附加數(shù)據(jù)的設(shè)備的方框圖;圖4示出根據(jù)本發(fā)明的示例性實(shí)施例的存儲(chǔ)附加數(shù)據(jù)之前和之后的狀態(tài);圖5是示出根據(jù)本發(fā)明的示例性實(shí)施例的在文件系統(tǒng)中存儲(chǔ)和管理附加數(shù)據(jù)的方法的流程圖;圖6是示出根據(jù)本發(fā)明的示例性實(shí)施例的搜索附加的數(shù)據(jù)的方法的流程圖;圖7A示出在傳統(tǒng)FAT文件系統(tǒng)中存儲(chǔ)文件中位置數(shù)據(jù)的方法,圖7B示出根據(jù)本發(fā)明的示例性實(shí)施例的移動(dòng)文件中的位置的方法;圖8示出根據(jù)本發(fā)明的示例性實(shí)施例的快速搜索文件或目錄的構(gòu)思;圖9是示出根據(jù)圖8所示的本發(fā)明的另一示例性實(shí)施例的快速搜索文件或目錄的構(gòu)思的流程圖;圖10A示出在傳統(tǒng)FAT文件系統(tǒng)的目錄中的文件的存儲(chǔ),圖10B示出根據(jù)本發(fā)明的另一示例性實(shí)施例的在目錄中存儲(chǔ)附加數(shù)據(jù)的構(gòu)思;和圖11示出根據(jù)本發(fā)明的另一示例性實(shí)施例的存儲(chǔ)用于恢復(fù)文件的附加數(shù)據(jù)的構(gòu)思。
具體實(shí)施例方式
以下,將參照附圖來詳細(xì)描述本發(fā)明的示例性實(shí)施例。通過參照對(duì)示例性實(shí)施例和附圖的以下詳細(xì)描述,本發(fā)明的優(yōu)點(diǎn)和特點(diǎn)以及實(shí)現(xiàn)本發(fā)明的方法將會(huì)更容易理解。然而,本發(fā)明可以以許多不同的方式來實(shí)現(xiàn),并且不應(yīng)理解為被于此闡述的示例性實(shí)施例所限制。并且,提供這些示例性實(shí)施例,所以此公開將是完整的和徹底的,并向本領(lǐng)域的技術(shù)人員充分傳達(dá)本發(fā)明的構(gòu)思,本發(fā)明將僅由權(quán)利要求所限定。在整個(gè)說明書中,相同的標(biāo)號(hào)表示相同的部件。
將參照附圖來詳細(xì)描述本發(fā)明的示例性實(shí)施例。
圖3是示出根據(jù)本發(fā)明的示例性實(shí)施例的用于在文件系統(tǒng)中存儲(chǔ)和管理附加數(shù)據(jù)的設(shè)備的框圖。這種設(shè)備包括搜索單元310、控制單元320、存儲(chǔ)單元330、文件/目錄搜索單元340、文件數(shù)據(jù)搜索單元350和附加數(shù)據(jù)管理單元360。
搜索單元310根據(jù)控制單元320的指示在目錄表項(xiàng)110中搜索未使用區(qū)域。
控制單元320并行控制存儲(chǔ)單元330(稍候?qū)⒚枋?和搜索單元310,從而在未使用區(qū)域中存儲(chǔ)用于文件或目錄的多種附加數(shù)據(jù)。
存儲(chǔ)單元330在FAT文件系統(tǒng)的目錄表項(xiàng)中存儲(chǔ)文件或目錄的元數(shù)據(jù)。存儲(chǔ)單元330還根據(jù)控制單元320的指示來操作。
附加數(shù)據(jù)管理單元360管理由存儲(chǔ)單元330存儲(chǔ)的附加數(shù)據(jù)。附加數(shù)據(jù)管理單元360的主要功能在于使用簽名和校驗(yàn)碼來搜索附加的數(shù)據(jù)。
文件/目錄搜索單元340在打開文件或目錄時(shí)搜索文件或目錄的位置。例如,當(dāng)在目錄表項(xiàng)的空區(qū)域中添加對(duì)于文件名的數(shù)據(jù)時(shí),文件/目錄搜索單元340將文件名的校驗(yàn)碼與正被搜索的文件(“目標(biāo)文件”)名的校驗(yàn)碼進(jìn)行比較,并且如果校驗(yàn)碼相同則根據(jù)附加數(shù)據(jù)的校驗(yàn)碼產(chǎn)生文件名,將產(chǎn)生的文件名與目標(biāo)文件名進(jìn)行比較,從而定位目標(biāo)文件。
文件數(shù)據(jù)搜索單元350由控制單元320來控制,并且在讀取數(shù)據(jù)時(shí)移動(dòng)在文件中的指針。當(dāng)添加在文件中的位置數(shù)據(jù)時(shí),文件數(shù)據(jù)搜索單元350允許用戶根據(jù)位置數(shù)據(jù)快速地移動(dòng)到在文件中由用戶期望的讀取和寫入位置。
圖4示出根據(jù)本發(fā)明的示例性實(shí)施例的存儲(chǔ)附加數(shù)據(jù)之前和之后的狀態(tài)。參照?qǐng)D4的左邊,當(dāng)需要添加關(guān)于文件或目錄的信息時(shí), 附加數(shù)據(jù)可被寫入在其右圖所描述的文件數(shù)據(jù)#4區(qū)域之前或之后。然而,不是所有的文件需要寫入附加數(shù)據(jù)。按原樣使用普通文件或目錄數(shù)據(jù),僅當(dāng)需要提高性能時(shí)才將數(shù)據(jù)添加到空區(qū)域(以下詳細(xì)描述)。
當(dāng)需要文件的附加數(shù)據(jù)時(shí),搜索在所述文件數(shù)據(jù)之前或下一個(gè)的空區(qū)域。在空區(qū)域中記錄表示這是附加數(shù)據(jù)的簽名、將被添加的數(shù)據(jù)、包含數(shù)據(jù)和整個(gè)區(qū)域的校驗(yàn)碼的附加數(shù)據(jù)等。所述校驗(yàn)碼是用于檢查數(shù)據(jù)精確性的錯(cuò)誤檢測(cè)方法。通常,當(dāng)輸入或發(fā)送數(shù)據(jù)時(shí),作為所有數(shù)據(jù)的和的校驗(yàn)碼在發(fā)送數(shù)據(jù)之前被單獨(dú)發(fā)送。接收方每當(dāng)接收到數(shù)據(jù)時(shí)對(duì)數(shù)據(jù)進(jìn)行合計(jì),并將其結(jié)果與校驗(yàn)碼進(jìn)行比較從而檢測(cè)在其中的任何錯(cuò)誤。
如果沒有用于記錄附加數(shù)據(jù)的區(qū)域存在,則將用于特定文件或目錄的數(shù)據(jù)移動(dòng)到另一區(qū)域,并且在空區(qū)域中記錄附加數(shù)據(jù)。在這種情況下,不影響FAT文件系統(tǒng)的兼容性。對(duì)于添加的數(shù)據(jù)的量不存在局限性,可創(chuàng)建與需求的同樣多的未使用區(qū)域來使用(在盤空間限制之內(nèi))。
圖5是根據(jù)本發(fā)明的示例性實(shí)施例的在文件系統(tǒng)中存儲(chǔ)和管理附加數(shù)據(jù)的方法的流程圖。搜索單元310搜索未使用區(qū)域(S502)。存儲(chǔ)單元330在未使用區(qū)域中存儲(chǔ)多種附加數(shù)據(jù)(S504)。附加數(shù)據(jù)管理單元360使用存儲(chǔ)的附加數(shù)據(jù)的簽名和校驗(yàn)碼來管理附加數(shù)據(jù)(S506)。附加的數(shù)據(jù)的管理表示通過各種方法應(yīng)用存儲(chǔ)的附加數(shù)據(jù),以及提高文件系統(tǒng)的性能。將參照?qǐng)D6至11描述多個(gè)示例。
圖6是示出根據(jù)本發(fā)明的示例性實(shí)施例的訪問附加的數(shù)據(jù)的方法的流程圖。附加數(shù)據(jù)管理單元360根據(jù)控制單元320的控制來檢查在包含文件數(shù)據(jù)的目錄表項(xiàng)之前或下一個(gè)的目錄表項(xiàng)是否為空(S602)。即使附加數(shù)據(jù)被存儲(chǔ)在區(qū)域中,由于數(shù)據(jù)的32字節(jié)的第一扇區(qū)以“0”開始,所以根據(jù)FAT規(guī)范該區(qū)域被識(shí)別為空區(qū)域。因此,如果檢查的目錄表項(xiàng)被識(shí)別為空區(qū)域,則附加數(shù)據(jù)管理單元360首先檢查簽名(包括添加數(shù)據(jù)的簽名)是否存在以確定所述區(qū)域是否具有添加數(shù)據(jù)(S604)。如果所述簽名存在,則附加數(shù)據(jù)管理單元360檢查是否由于添加的數(shù)據(jù)在不同文件系統(tǒng)中可能被改變而引起數(shù)據(jù)的校驗(yàn)碼已經(jīng)改變(S606)。作為將添加的數(shù)據(jù)的校驗(yàn)碼與新創(chuàng)建的校驗(yàn)碼進(jìn)行比較的結(jié)果,如果校驗(yàn)碼沒有改變,則確定添加的數(shù)據(jù)已經(jīng)被找到(S608)。然而,如果在S602中,空區(qū)域不存在;在S604中,簽名不存在;或者在S606中,校驗(yàn)碼改變不存在,則附加數(shù)據(jù)管理單元360確定不存在添加的數(shù)據(jù)。
圖7示出根據(jù)本發(fā)明的另一示例性實(shí)施例的移動(dòng)文件中的讀取和寫入位置的方法。當(dāng)根據(jù)控制單元320的指示來添加文件中的位置數(shù)據(jù)時(shí),文件數(shù)據(jù)搜索單元350根據(jù)添加的位置數(shù)據(jù)移動(dòng)文件中的讀取和寫入位置。特別地,圖7A描述在傳統(tǒng)FAT文件系統(tǒng)中存儲(chǔ)文件中的位置數(shù)據(jù)的方法。傳統(tǒng)FAT文件系統(tǒng)以分布的方式在多個(gè)區(qū)域中存儲(chǔ)文件位置數(shù)據(jù)。結(jié)果,如圖7A所示,區(qū)域號(hào)碼可被排序?yàn)?→10→89→50→19。在FAT的每一區(qū)域中記錄下一數(shù)據(jù)位置,因此,為了讀取區(qū)域#89應(yīng)讀取區(qū)域#10。然而,開始不知道區(qū)域#10是否存在,因此,可從作為文件的開始位置的區(qū)域#3順序搜索區(qū)域#10。由FAT所指示的區(qū)域使用多個(gè)扇區(qū),因此將由存儲(chǔ)單元330讀取的數(shù)據(jù)的量大大增加。當(dāng)用戶從開始按順序讀取文件時(shí),可以從開始位置順續(xù)搜索和讀取區(qū)域。然而,如果在用戶正在讀取區(qū)域#50時(shí)要返回區(qū)域#89,則按順序3→10→89進(jìn)行搜索。因此,在大文件情況下,搜索的數(shù)量將大大增加,從而引起速度將低。此時(shí),如圖7B所述,如果在區(qū)域中記錄文件的位置數(shù)據(jù)以存儲(chǔ)附加數(shù)據(jù),則移動(dòng)到讀取和寫入位置將是即時(shí)和有效的。另外,在一區(qū)域中收集所有的添加的數(shù)據(jù),將被讀取的數(shù)據(jù)的量減少。
當(dāng)添加文件屬性數(shù)據(jù)時(shí),附加數(shù)據(jù)管理單元360根據(jù)屬性數(shù)據(jù)分析文件的多個(gè)屬性。現(xiàn)在,以多種文件格式來記錄數(shù)字媒體。有超過10種運(yùn)動(dòng)圖像或音樂文件格式,必須讀取文件內(nèi)容以分析每一文件。然而,如果存儲(chǔ)文件的屬性數(shù)據(jù),則可以期待提高分析文件的速度??梢源鎯?chǔ)在傳統(tǒng)FAT文件系統(tǒng)中的屬性限于“hidden”、“read only”、“system”、“volume”、“directory”、“archive”和“l(fā)ong name”。參照?qǐng)D7B,可將附加屬性存儲(chǔ)在標(biāo)注“添加的文件屬性數(shù)據(jù)”的位置中,可以同時(shí)存儲(chǔ)文件的多個(gè)屬性。可以添加的屬性數(shù)據(jù)包括,例如用于壓縮文件的屬性數(shù)據(jù)或文件的快捷屬性數(shù)據(jù)。通過存儲(chǔ)附加屬性,可以很容易獲得關(guān)于文件的信息而不用完全讀取頭部分。
將參照?qǐng)D8和9來描述快速搜索使用附加數(shù)據(jù)的文件的方法,圖8和9示出根據(jù)本發(fā)明的示例性實(shí)施例的快速搜索文件或目錄的構(gòu)思。圖8示出在目錄表項(xiàng)中存儲(chǔ)長(zhǎng)文件名。當(dāng)文件名長(zhǎng)時(shí),將名字分開并分布在多個(gè)目錄表項(xiàng)中。在傳統(tǒng)的FAT文件系統(tǒng)中,將分布的文件名組合到單個(gè)長(zhǎng)文件名中,并且當(dāng)搜索目標(biāo)文件時(shí)與目標(biāo)文件名進(jìn)行比較。在這種情況下,需要許多操作以產(chǎn)生長(zhǎng)文件名,并且將進(jìn)行比較的數(shù)據(jù)的量增加。然而,當(dāng)在附加數(shù)據(jù)區(qū)域中存儲(chǔ)如圖8所示的校驗(yàn)碼并添加文件名的數(shù)據(jù)時(shí),文件/目錄搜索單元340控制單元320的指示將文件名的校驗(yàn)碼與目標(biāo)文件名的校驗(yàn)碼進(jìn)行比較(S902)。結(jié)果,如果校驗(yàn)碼相同,則文件/目錄搜索單元340產(chǎn)生文件名(S904),并且將產(chǎn)生的文件名與目標(biāo)文件名進(jìn)行比較(S906)。當(dāng)文件名相同時(shí),定位搜索的文件名(S908)。然而,如果在步驟S902確定校驗(yàn)碼不同,或者在步驟S906中,產(chǎn)生的文件名與目標(biāo)文件名不同,則不定位文件(S910),因此,過程返回到步驟S902以比較校驗(yàn)碼。
圖10示出根據(jù)本發(fā)明的另一示例性實(shí)施例的附加地存儲(chǔ)關(guān)于目錄的信息的構(gòu)思。圖10A示出在傳統(tǒng)FAT文件系統(tǒng)的目錄中文件的存儲(chǔ)。為了獲得在目錄中的文件數(shù)量或目錄數(shù)量,必須通過從目錄的第一區(qū)域移動(dòng)到最后區(qū)域來讀取文件和目錄。在這種情況下,需要讀取在目錄中的多個(gè)區(qū)域,并需要將文件與目錄區(qū)別的操作。為了獲得目錄的大小,還需要對(duì)各文件大小求和的操作,從而沒有效率。如圖10B所示,如果添加目錄的數(shù)據(jù),則當(dāng)需要時(shí)附加數(shù)據(jù)管理單元360可通過單一讀取操作在目錄中的第一文件的位置之前的區(qū)域中讀取所有數(shù)據(jù),所述所有數(shù)據(jù)包括目錄數(shù)據(jù),即在目錄/多個(gè)目錄中的文件數(shù)量和大小。圖10的右邊示出在目錄表項(xiàng)的未使用區(qū)域中存儲(chǔ)每一文件的元數(shù)據(jù),所述未使用區(qū)域位于每一文件的位置之前。
圖11示出根據(jù)本發(fā)明的另一示例性實(shí)施例的附加地存儲(chǔ)用于恢復(fù)文件的數(shù)據(jù)的構(gòu)思。當(dāng)附加地存儲(chǔ)文件的恢復(fù)數(shù)據(jù)時(shí)應(yīng)用本實(shí)施例。傳統(tǒng)FAT文件系統(tǒng)不具有存儲(chǔ)用于恢復(fù)文件或目錄的信息的空間,因此,當(dāng)突然斷電時(shí)有時(shí)候會(huì)損壞這種文件系統(tǒng)。然而,根據(jù)本發(fā)明在附加數(shù)據(jù)區(qū)域中記錄恢復(fù)數(shù)據(jù),并且盡管斷電也可使用這種數(shù)據(jù)進(jìn)行安全恢復(fù)。將不在詳細(xì)描述這種恢復(fù)方法,而在本實(shí)施例中提供存儲(chǔ)可用于恢復(fù)的數(shù)據(jù)的區(qū)域。
作為另一示例,可以在目錄表項(xiàng)的空區(qū)域中附加地存儲(chǔ)用于存儲(chǔ)文件數(shù)據(jù)的簇的映射數(shù)據(jù)。還可以附加地存儲(chǔ)涉及文件安全的數(shù)據(jù)。
將本發(fā)明應(yīng)用于FAT文件系統(tǒng),但是由于可以在其他文件系統(tǒng)中記錄和應(yīng)用附加數(shù)據(jù),所以本發(fā)明并不限于此。
根據(jù)本發(fā)明的示例性實(shí)施例,可以應(yīng)用目錄表項(xiàng)的未使用區(qū)域來存儲(chǔ)、使用和管理附加數(shù)據(jù),而不降低文件系統(tǒng)的兼容性,并提高FAT文件系統(tǒng)的性能。
對(duì)于附加存儲(chǔ)的數(shù)據(jù)的快速訪問是可能的,當(dāng)搜索文件時(shí),由于不比較全部文件名,所以提高了搜索性能。另外,不是按順序搜索文件中的讀取和寫入位置,而是使用添加到文件的位置數(shù)據(jù)來對(duì)其搜索,因此在文件中可以容易地移動(dòng)讀取和寫入的位置。
可以分析文件的屬性,可以容易地定位具有長(zhǎng)文件名的文件,可以容易地獲得目錄的數(shù)量和大小,以及可以附加地記錄文件的日志數(shù)據(jù),從而容易地恢復(fù)文件。
由于即使在除了FAT文件系統(tǒng)之外的文件系統(tǒng)中也可以記錄附加數(shù)據(jù),所以如果這些系統(tǒng)具有與本發(fā)明相同的記錄方法,則其性能得到提高。
本發(fā)明的效果將不限于上述效果。以上沒有描述的由本領(lǐng)域技術(shù)人員根據(jù)權(quán)利要求所理解的其他效果也落入本發(fā)明的范圍中。
本領(lǐng)域的普通技術(shù)人員將理解在不脫離由權(quán)利要求所定義的本發(fā)明的精神和范圍的情況下,可以對(duì)其進(jìn)行各種代替、修改和變化。因此,可以理解上述實(shí)施例僅是示例的目的,而不被理解為限制本發(fā)明。
權(quán)利要求
1.一種在文件系統(tǒng)中存儲(chǔ)和管理附加數(shù)據(jù)的設(shè)備,該設(shè)備包括搜索單元,在目錄表項(xiàng)中搜索未使用區(qū)域;存儲(chǔ)單元,在未使用區(qū)域中存儲(chǔ)附加數(shù)據(jù);和附加數(shù)據(jù)管理單元,使用附加數(shù)據(jù)的簽名和校驗(yàn)碼定位附加數(shù)據(jù)的位置。
2.如權(quán)利要求1所述的設(shè)備,其中,在未使用區(qū)域中存儲(chǔ)的數(shù)據(jù)包括表示附加數(shù)據(jù)存在的簽名、附加數(shù)據(jù)和附加數(shù)據(jù)的校驗(yàn)碼中的至少一個(gè)。
3.如權(quán)利要求1所述的設(shè)備,其中,如果沒有找到存儲(chǔ)文件或目錄的附加數(shù)據(jù)的空區(qū)域,則附加數(shù)據(jù)管理單元將在一區(qū)域中存儲(chǔ)的預(yù)定文件或目錄的數(shù)據(jù)移動(dòng)到另一區(qū)域以使所述一區(qū)域?yàn)榭?,從而可以將所述文件或目錄的附加?shù)據(jù)存儲(chǔ)在所述一區(qū)域中。
4.如權(quán)利要求1所述的設(shè)備,其中,附加數(shù)據(jù)管理單元檢查位于存儲(chǔ)文件數(shù)據(jù)的另一目錄表項(xiàng)之前或下一個(gè)的目錄表項(xiàng)是否為空區(qū)域;如果所述目錄表項(xiàng)為空區(qū)域,則檢查在所述空區(qū)域中附加數(shù)據(jù)的簽名是否存在;如果所述簽名存在,則檢查在附加數(shù)據(jù)的校驗(yàn)碼中的改變;和如果在校驗(yàn)碼中沒有發(fā)生改變,則確定附加數(shù)據(jù)存在。
5.如權(quán)利要求1所述的設(shè)備,還包括文件數(shù)據(jù)搜索單元,根據(jù)位置數(shù)據(jù)移動(dòng)在文件中讀取和寫入的位置,其中,所述附加數(shù)據(jù)包括位置數(shù)據(jù)。
6.如權(quán)利要求1所述的設(shè)備,其中,附加數(shù)據(jù)管理單元根據(jù)文件的屬性數(shù)據(jù)分析文件屬性,其中,所述附加數(shù)據(jù)包括屬性數(shù)據(jù)。
7.如權(quán)利要求1所述的設(shè)備,還包括文件/目錄搜索單元,使用附加數(shù)據(jù)的校驗(yàn)碼搜索文件,其中,附加數(shù)據(jù)包括所述文件的文件名。
8.如權(quán)利要求7所述的設(shè)備,其中,文件/目錄搜索單元通過將所述文件的文件名的校驗(yàn)碼與目標(biāo)文件的文件名的校驗(yàn)碼進(jìn)行比較來搜索目標(biāo)文件;如果兩個(gè)校驗(yàn)碼相同,則產(chǎn)生所述文件的文件名;將產(chǎn)生的文件名與目標(biāo)文件的文件名進(jìn)行比較;如果產(chǎn)生的文件名與目標(biāo)文件的文件名相同,則定位目標(biāo)文件。
9.如權(quán)利要求1所述的設(shè)備,其中,附加數(shù)據(jù)管理單元在目錄中的第一文件的位置之前的區(qū)域存儲(chǔ)目錄的數(shù)據(jù),其中,附加數(shù)據(jù)包括目錄的數(shù)據(jù)。
10.如權(quán)利要求9所述的設(shè)備,其中,目錄的數(shù)據(jù)包括目錄中的文件的數(shù)量、目錄中的子目錄的數(shù)量、目錄的大小和每一子目錄的大小中的至少一個(gè)。
11.如權(quán)利要求1所述的設(shè)備,其中,附加數(shù)據(jù)包括將文件恢復(fù)到先前狀態(tài)的數(shù)據(jù)。
12.如權(quán)利要求1所述的設(shè)備,其中,附加數(shù)據(jù)包括映射存儲(chǔ)文件數(shù)據(jù)的數(shù)據(jù)的簇。
13.如權(quán)利要求1所述的設(shè)備,其中,附加數(shù)據(jù)包括用于文件安全的數(shù)據(jù)。
14.一種在文件系統(tǒng)中存儲(chǔ)附加數(shù)據(jù)的方法,該方法包括(a)在目錄表項(xiàng)中搜索未使用區(qū)域;和(b)在未使用區(qū)域中存儲(chǔ)附加數(shù)據(jù)。
15.如權(quán)利要求14的方法,還包括如果沒有找到存儲(chǔ)文件或目錄的附加數(shù)據(jù)的空區(qū)域,則將在一區(qū)域中存儲(chǔ)的預(yù)定文件或目錄的數(shù)據(jù)移動(dòng)到另一區(qū)域以使所述一區(qū)域?yàn)榭?,從而可以將所述文件或目錄的附加?shù)據(jù)存儲(chǔ)在所述一區(qū)域中。
16.一種管理在文件系統(tǒng)中存儲(chǔ)的附加數(shù)據(jù)的方法,包括使用附加數(shù)據(jù)的簽名和校驗(yàn)碼來定位附加數(shù)據(jù)的位置。
17.如權(quán)利要求16的方法,還包括(i)檢查位于存儲(chǔ)文件數(shù)據(jù)的另一目錄表項(xiàng)之前或下一個(gè)的目錄表項(xiàng)是否為空區(qū)域;(ii)如果所述目錄表項(xiàng)為空區(qū)域,則檢查在所述空區(qū)域中附加數(shù)據(jù)的簽名是否存在;(iii)如果所述簽名存在,則檢查在附加數(shù)據(jù)的校驗(yàn)碼中的改變;和(iv)如果在校驗(yàn)碼中沒有發(fā)生改變,則確定附加數(shù)據(jù)存在。
18.如權(quán)利要求16的方法,還包括當(dāng)所述附加數(shù)據(jù)指的是文件的位置數(shù)據(jù)時(shí),則根據(jù)文件的位置數(shù)據(jù)移動(dòng)在文件中的讀取和寫入位置。
19.如權(quán)利要求16的方法,還包括當(dāng)附加數(shù)據(jù)指的是文件的屬性數(shù)據(jù)時(shí),根據(jù)文件的屬性數(shù)據(jù)分析文件的屬性。
20.如權(quán)利要求16的方法,還包括當(dāng)附加數(shù)據(jù)指的是文件的文件名時(shí),使用附加數(shù)據(jù)的校驗(yàn)碼搜索文件。
21.如權(quán)利要求20的方法,還包括通過將所述文件的文件名的校驗(yàn)碼與目標(biāo)文件的文件名的校驗(yàn)碼進(jìn)行比較來搜索目標(biāo)文件;如果兩個(gè)校驗(yàn)碼相同,則產(chǎn)生所述文件的文件名;將產(chǎn)生的文件名與目標(biāo)文件的文件名進(jìn)行比較;和如果產(chǎn)生的文件名與目標(biāo)文件的文件名相同,則定位目標(biāo)文件。
22.如權(quán)利要求14的方法,其中(b)包括在目錄中的第一文件的位置之前的區(qū)域中存儲(chǔ)目錄的數(shù)據(jù),其中,附加數(shù)據(jù)包括目錄的數(shù)據(jù)。
23.如權(quán)利要求22的方法,其中,目錄的數(shù)據(jù)包括目錄中的文件的數(shù)量、目錄中的子目錄的數(shù)量、目錄的大小和每一子目錄的大小中的至少一個(gè)。
24.如權(quán)利要求14的方法,其中,附加數(shù)據(jù)包括將文件恢復(fù)到先前狀態(tài)的數(shù)據(jù)。
25.如權(quán)利要求14的方法,其中,附加數(shù)據(jù)包括映射存儲(chǔ)文件數(shù)據(jù)的數(shù)據(jù)的簇。
26.如權(quán)利要求14的方法,其中,附加數(shù)據(jù)包括用于文件安全的數(shù)據(jù)。
全文摘要
公開一種在文件系統(tǒng)中存儲(chǔ)和管理附加數(shù)據(jù)的設(shè)備和方法。該設(shè)備包括搜索單元,在目錄表項(xiàng)中搜索未使用區(qū)域;存儲(chǔ)單元,在未使用區(qū)域中存儲(chǔ)附加數(shù)據(jù);和附加數(shù)據(jù)管理單元,使用附加數(shù)據(jù)的簽名和校驗(yàn)碼定位附加數(shù)據(jù)的位置。該方法包括(a)在目錄表項(xiàng)中搜索未使用區(qū)域,(b)在未使用區(qū)域中存儲(chǔ)附加數(shù)據(jù),(c)使用附加數(shù)據(jù)的簽名和校驗(yàn)碼來定位附加數(shù)據(jù)的位置。根據(jù)本發(fā)明,可以應(yīng)用目錄表項(xiàng)的未使用區(qū)域來存儲(chǔ)、使用和管理附加數(shù)據(jù),而不降低文件系統(tǒng)的兼容性,并提高FAT文件系統(tǒng)的性能。
文檔編號(hào)G06F17/30GK1858746SQ20061007815
公開日2006年11月8日 申請(qǐng)日期2006年4月28日 優(yōu)先權(quán)日2005年5月4日
發(fā)明者徐東永, 裴晟桓, 權(quán)們相, 金贊圭, 申喜燮 申請(qǐng)人:三星電子株式會(huì)社