国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種fat文件系統(tǒng)及其處理方法

      文檔序號:6608768閱讀:247來源:國知局
      專利名稱:一種fat文件系統(tǒng)及其處理方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種FAT文件系統(tǒng)及其處理方法。
      背景技術(shù)
      文件分配表(File Allocation Table,F(xiàn)AT)文件系統(tǒng)是微軟定義的一種管理磁盤數(shù)據(jù)空間的文件系統(tǒng),創(chuàng)建于70年代末80年代初,起初用于MS-DOS操作系統(tǒng),只將其定位為一種簡單的文件系統(tǒng),只適合于軟盤管理,而當(dāng)時的軟盤也不過1M的存儲范圍而已。隨著新技術(shù)的不斷發(fā)展,磁盤存儲空間不斷變大,最初的FAT設(shè)計已不能滿足需要,因此微軟在原有基礎(chǔ)上對FAT進(jìn)行了擴展,即現(xiàn)在的FAT12、FAT16、以及FAT32文件系統(tǒng),這三種文件系統(tǒng)已基本滿足不同存儲空間范圍的空間管理了。
      對于一個空白的磁盤數(shù)據(jù)區(qū),可以認(rèn)為是一塊連續(xù)的空白數(shù)據(jù)區(qū),用戶可以直接在該空白數(shù)據(jù)區(qū)上讀寫數(shù)據(jù)。而FAT文件系統(tǒng),就是在該空白磁盤空間上做了一些定義規(guī)劃,以方便使用磁盤空間。在定義了FAT文件系統(tǒng)之后,所有對磁盤空間的直接讀寫對用戶而言是禁止的,只對FAT文件系統(tǒng)開放,用戶對磁盤的操作通過FAT文件系統(tǒng)定義的接口來實現(xiàn),例如打開文件、讀寫文件、關(guān)閉文件等操作。
      現(xiàn)有的FAT文件系統(tǒng)包含4部分參數(shù)區(qū)、FAT表、目錄區(qū)以及數(shù)據(jù)區(qū)。FAT文件系統(tǒng)中規(guī)定了對磁盤讀寫操作的基本單位為512個字節(jié),通常稱為一個塊(block),在block的基礎(chǔ)上又定義了簇(Cluster)的概念,一個簇會包含1個或多個block,在參數(shù)區(qū)中說明具體包含的數(shù)目。其中,block是讀寫磁盤的最小單位。
      其中,參數(shù)區(qū),主要用于記錄整個FAT文件系統(tǒng)中相關(guān)的參數(shù)設(shè)置。例如一個簇包含幾個block,一個FAT表由多少個block構(gòu)成,一個文件系統(tǒng)包含多少個FAT表等。此外,在參數(shù)區(qū)中可能會保留幾個block作為其它用途。
      FAT表,用于對FAT文件系統(tǒng)的磁盤空間進(jìn)行管理。FAT表中基本表項可以為12個bit,16個bit或32個bit,即所謂的FAT12、FAT16、FAT32。FAT表中一個基本表項對應(yīng)于數(shù)據(jù)區(qū)的一個簇,簡單地說,就是將磁盤劃分為數(shù)據(jù)區(qū)和標(biāo)記區(qū),F(xiàn)AT表就是做標(biāo)記的地方。實際上FAT表構(gòu)造一個單向鏈表結(jié)構(gòu),對每一FAT表項而言,其可以包含兩類信息,一是其為第幾個表項,可通過FAT表項的索引值得知,例如從零開始;二是該表項里存儲的相應(yīng)數(shù)據(jù),F(xiàn)AT文件系統(tǒng)將該數(shù)據(jù)的值定義為下一個FAT表項的索引值。這樣就形成了一個單項鏈表,鏈表結(jié)束處FAT表項的值為零。
      目錄區(qū),用于存儲根目錄下的文件名,F(xiàn)AT文件系統(tǒng)定義了根目錄最多存儲512個短文件名。目錄區(qū)中的基本存儲單位為條目(Entry)。一個短文件名對應(yīng)一個條目,一個條目占32個字節(jié)(Byte),根目錄下共有512個條目,共32個塊(Block)。每一個條目中都包含指向的數(shù)據(jù)區(qū)的起始簇和文件大小,通過起始簇就可以再通過FAT表索引數(shù)據(jù)區(qū),以此讀取整個文件的內(nèi)容。
      其中name,為文件或目錄的名字;Ext,為擴展名;Attr,為屬性字段;Time_ms,為時間字段;Create time,為創(chuàng)建時間;Create date,為創(chuàng)建日期;Access date,為最近一次訪問日期;Start cluster HI,為文件或目錄對應(yīng)數(shù)據(jù)區(qū)的起始簇的高位;Modify time,為最近一次修改時間;Modify date,為最近一次修改日期;Start cluster LO,為文件或目錄對應(yīng)數(shù)據(jù)區(qū)的起始簇的低位;Filesize,為文件大小等。
      如果到了目錄區(qū)的末尾條目,即沒有下一個可用的目錄了,可以通過從末尾條目的下一個條目的全部字節(jié)置零來表示條目的結(jié)束。
      數(shù)據(jù)區(qū),其以簇為存儲單位,通過文件的鏈表組織起來。其中的數(shù)據(jù)的讀寫都是被動的,F(xiàn)AT表指向哪就讀哪。
      在FAT文件系統(tǒng)中刪除文件時,采用置標(biāo)記的方式。以一個短文件名為例,一個短文件名在FAT16的根目錄里是由32個字節(jié)來存儲的,當(dāng)刪除一個文件時Windows的通常做法是將要刪除的文件名的第一個字節(jié)改為0xE5,這樣文件系統(tǒng)在瀏覽時若遇到這樣標(biāo)記過的文件項就會跳過,不作顯示,但實際上這32個字節(jié)還放在那里,那么就少了一個文件存放了。
      因此,現(xiàn)有的FAT文件系統(tǒng)存在以下問題在現(xiàn)有的FAT文件系統(tǒng)中刪除文件時只是對文件名做了刪除標(biāo)記,但是并不清除該文件名,這樣文件雖然被刪除,但是文件名仍占用著存儲空間,由于對磁盤根目錄的頻繁寫入、刪除文件,會導(dǎo)致根目錄下可創(chuàng)建的文件數(shù)目大大減小,就會出現(xiàn)磁盤剩余大量空間,但根目錄卻無法繼續(xù)創(chuàng)建新文件。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于,提供一種FAT文件系統(tǒng),能夠重新利用被刪除文件名所占的空間,避免因文件被刪除后,表示該文件名的條目依舊存在,而造成的浪費。
      本發(fā)明的另一目的在于,提供一種FAT文件系統(tǒng)的處理方法,能夠重新利用被刪除文件名所占的空間,避免因文件被刪除后,表示該文件名的條目依舊存在,而造成的浪費。
      本發(fā)明的FAT文件系統(tǒng)的處理方法,包括下列步驟步驟A對要刪除的文件做刪除標(biāo)記,同時清除與要刪除的文件對應(yīng)的FAT表項;步驟B記錄所述刪除文件的位置、以及該文件對應(yīng)的條目數(shù)目,并從該文件逐步搜索到根目錄的末尾,記錄末尾文件的位置及其條目數(shù)目;步驟C判斷所述末尾文件對應(yīng)的條目數(shù)目是否等于所述刪除文件對應(yīng)的條目數(shù)目,在所述末尾文件對應(yīng)的條目數(shù)目等于所述刪除文件對應(yīng)的條目數(shù)目時,用所述末尾文件的條目覆蓋所述刪除文件的條目,并將原末尾文件處的條目內(nèi)容全部置零,將其對應(yīng)的標(biāo)記置可用標(biāo)記;否則,返回步驟300。
      其中,在所述步驟A之前,進(jìn)一步包括下列步驟預(yù)先定義一個存儲模塊,存儲與各個條目相對應(yīng)的標(biāo)記,F(xiàn)AT文件系統(tǒng)在掃描根目錄時,可以根據(jù)各個標(biāo)記得知相應(yīng)的條目是否可用。
      其中,所述存儲模塊以一個大小與根目錄下的條目數(shù)目相一致的數(shù)組形式存在。
      在步驟C中,如果所述末尾文件對應(yīng)的條目數(shù)目不等于所述刪除文件對應(yīng)的條目數(shù)目時,可以執(zhí)行下列步驟掃描并定位所述刪除文件后的第一個為不可用標(biāo)記的條目位置,將從該不可用標(biāo)記的條目一直到末尾文件相應(yīng)的條目逐個向前移動該刪除文件對應(yīng)的條目所占的空間,以覆蓋前面的條目。
      本發(fā)明的FAT文件系統(tǒng),包括查詢單元、分析單元、執(zhí)行單元,其中所述查詢單元,用于查詢并記錄刪除文件的位置和刪除文件對應(yīng)的條目數(shù)目,以及查詢并記錄末尾文件的位置及其條目數(shù)目,并將查詢結(jié)果發(fā)送至分析單元;分析單元,用于將查詢單元發(fā)送來的刪除文件對應(yīng)的條目數(shù)目和末尾文件對應(yīng)的條目數(shù)目進(jìn)行比較,在比較結(jié)果為y1等于y2時,通知執(zhí)行單元用所述末尾文件的條目覆蓋所述刪除文件的條目;執(zhí)行單元,用于根據(jù)分析單元發(fā)送來的通知用所述末尾文件的條目覆蓋所述刪除文件的條目,并將原末尾文件處的條目內(nèi)容全部置零,將其對應(yīng)的標(biāo)記置可用標(biāo)記。
      其中,所述查詢單元中,可以進(jìn)一步包括存儲模塊,用于存儲根目錄下表示各個條目是否可用的標(biāo)記。
      所述存儲模塊可以為一個大小與根目錄下的條目數(shù)目相一致的數(shù)組。
      所述分析單元,可以進(jìn)一步用于在所述末尾文件對應(yīng)的條目數(shù)目不等于所述刪除文件對應(yīng)的條目數(shù)目時,通知執(zhí)行單元將所述刪除文件后的第一個為不可用標(biāo)記的條目一直到末尾文件相應(yīng)的的條目逐個向前移動所述刪除文件對應(yīng)的條目所占的空間,以覆蓋前面的條目。
      本發(fā)明的有益效果是依照本發(fā)明的FAT文件系統(tǒng)及其處理方法,通過重新利用被刪除文件名所占的空間,避免因文件被刪除后,表示該文件名的條目依舊存在,而造成的浪費。


      圖1為本發(fā)明的FAT文件系統(tǒng)的處理方法流程圖;圖2為本發(fā)明的FAT文件系統(tǒng)的結(jié)構(gòu)示意圖。
      具體實施例方式
      以下,參考圖1~2詳細(xì)描述本發(fā)明的FAT文件系統(tǒng)及其處理方法。
      如圖1所示,為本發(fā)明的FAT文件系統(tǒng)的處理方法流程圖,包括下列步驟步驟100對要刪除的文件做刪除標(biāo)記,同時清除與要刪除的文件對應(yīng)的FAT表項。
      其中,在步驟100中,對要刪除的文件做刪除標(biāo)記,包括下列步驟步驟11在刪除文件時,首先搜索該文件對應(yīng)的條目,例如可以通過比較該文件相應(yīng)的條目(Entry)中的文件名來找到該文件;步驟12在該條目的第一個字節(jié)(Byte)置特定標(biāo)記,即刪除標(biāo)記,例如0xE5。
      此外,在步驟100之前,進(jìn)一步包括下列步驟預(yù)先定義一個存儲模塊,存儲與各個條目相對應(yīng)的標(biāo)記,F(xiàn)AT文件系統(tǒng)在掃描根目錄時,可以根據(jù)各個標(biāo)記得知相應(yīng)的條目是否可用。
      在具體實現(xiàn)時,該存儲模塊可以為一個大小與根目錄下的條目數(shù)目相一致的數(shù)組。例如,對于只有512個條目項的FAT16文件系統(tǒng)而言,可以建立一個數(shù)組bool bEntry[512],用于存儲與各個條目相對應(yīng)的標(biāo)記。
      步驟200記錄該文件的位置、以及該文件對應(yīng)的條目數(shù)目,并從該文件逐步搜索到根目錄的末尾,記錄末尾文件的位置及其條目數(shù)目;其中末尾文件的條目以后的內(nèi)容全為零。
      其中,可以用x1表示刪除文件的位置,用y1表示該文件對應(yīng)的條目數(shù)目;用x2表示末尾文件的位置,用y2表示末尾文件對應(yīng)的條目數(shù)目。在現(xiàn)有的FAT文件系統(tǒng)中規(guī)定,一個短文件名對應(yīng)的條目數(shù)目為1,一個長文件名對應(yīng)的條目數(shù)目至少為2。
      步驟300判斷y2是否等于y1,在y2等于y1時,用x2處的條目覆蓋x1處的條目,并將原x2處的條目內(nèi)容全部置零,將其置可用標(biāo)記。
      這里,判斷y1是否等于y2的目的在于判斷末尾文件與刪除文件是否都是短文件名,或者是否是具有相同條目數(shù)目的長文件名。如果兩個文件相應(yīng)的條目數(shù)目不一致,則會出現(xiàn)不能替換或造成浪費的問題。例如如果末尾文件的文件名為3個條目的長文件名,而刪除文件的文件名為1個條目的短文件名,此時,會出現(xiàn)不能替換的問題,反之會造成浪費的問題。
      因此,為了解決上述問題,基于如上所述,在步驟300中,如果y2不等于y1時,可以執(zhí)行下列步驟掃描并定位該刪除文件后的第一個為不可用標(biāo)記的條目位置,將從該不可用標(biāo)記的條目一直到末尾文件相應(yīng)的條目逐個向前移動該刪除文件對應(yīng)的條目所占的空間,以覆蓋前面的條目。
      例如,該刪除文件對應(yīng)的條目數(shù)目為2,則從該不可用標(biāo)記的條目一直到末尾文件相應(yīng)的條目逐個向前移動2個條目,以覆蓋前面的條目。
      下面,對本發(fā)明的FAT文件系統(tǒng)進(jìn)行描述,如圖2所示,在該FAT文件系統(tǒng)中包括執(zhí)行單元、查詢單元、分析單元。其中查詢單元,用于查詢并記錄刪除文件的位置x1和刪除文件對應(yīng)的條目數(shù)目y1,以及查詢并記錄末尾文件的位置及其條目數(shù)目,并將查詢結(jié)果發(fā)送至分析單元;其中,在查詢單元中,包括存儲模塊,用于存儲根目錄下表示各個條目是否可用的標(biāo)記。
      例如,對于只有512個條目的FAT16文件系統(tǒng)而言,該存儲模塊可以存儲與512個條目相應(yīng)的512個標(biāo)記。
      分析單元,用于將查詢單元發(fā)送來的刪除文件對應(yīng)的條目數(shù)目y1和末尾文件對應(yīng)的條目數(shù)目y2進(jìn)行比較,在比較結(jié)果為y1等于y2時,通知執(zhí)行單元用x2處的條目覆蓋x1處的條目;執(zhí)行單元,用于根據(jù)分析單元發(fā)送來的通知用x2處的條目覆蓋x1處的條目,并將原x2處的條目內(nèi)容全部置零,將其對應(yīng)的標(biāo)記置可用標(biāo)記。
      此外,分析單元,可以進(jìn)一步用于在比較結(jié)果為y1不等于y2時,通知執(zhí)行單元將該刪除文件后的第一個為不可用標(biāo)記的條目一直到末尾文件相應(yīng)的條目逐個向前移動該刪除文件對應(yīng)的條目所占的空間,以覆蓋前面的條目。
      綜上所述,依照本發(fā)明的FAT文件系統(tǒng)的處理方法,能夠重新利用被刪除文件名所占的空間,避免因文件被刪除后,表示該文件名的條目依舊存在,而造成的浪費。
      以上是為了使本領(lǐng)域普通技術(shù)人員理解本發(fā)明,而對本發(fā)明所進(jìn)行的詳細(xì)描述,但可以想到,在不脫離本發(fā)明的權(quán)利要求所涵蓋的范圍內(nèi)還可以做出其它的變化和修改,這些變化和修改均在本發(fā)明的保護(hù)范圍內(nèi)。
      權(quán)利要求
      1.一種FAT文件系統(tǒng)的處理方法,其特征在于,包括下列步驟步驟A對要刪除的文件做刪除標(biāo)記,同時清除與要刪除的文件對應(yīng)的FAT表項;步驟B記錄所述刪除文件的位置、以及該文件對應(yīng)的條目數(shù)目,并從該文件逐步搜索到根目錄的末尾,記錄末尾文件的位置及其條目數(shù)目;步驟C判斷所述末尾文件對應(yīng)的條目數(shù)目是否等于所述刪除文件對應(yīng)的條目數(shù)目,在所述末尾文件對應(yīng)的條目數(shù)目等于所述刪除文件對應(yīng)的條目數(shù)目時,用所述末尾文件的條目覆蓋所述刪除文件的條目,并將原末尾文件處的條目內(nèi)容全部置零,將其對應(yīng)的標(biāo)記置可用標(biāo)記。
      2.如權(quán)利要求1所述的FAT文件系統(tǒng)的處理方法,其特征在于,在所述步驟A之前,進(jìn)一步包括下列步驟預(yù)先設(shè)置一個存儲模塊,存儲與各個條目相對應(yīng)的標(biāo)記,F(xiàn)AT文件系統(tǒng)在掃描根目錄時,可以根據(jù)各個標(biāo)記得知相應(yīng)的條目是否可用。
      3.如權(quán)利要求2所述的FAT文件系統(tǒng)的處理方法,其特征在于,所述存儲模塊以一個大小與根目錄下的條目數(shù)目相一致的數(shù)組形式存在。
      4.如權(quán)利要求2所述的FAT文件系統(tǒng)的處理方法,其特征在于,在步驟C中,如果所述末尾文件對應(yīng)的條目數(shù)目不等于所述刪除文件對應(yīng)的條目數(shù)目時,執(zhí)行下列步驟掃描并定位所述刪除文件后的第一個為不可用標(biāo)記的條目位置,將從該不可用標(biāo)記的條目一直到末尾文件相應(yīng)的條目逐個向前移動該刪除文件對應(yīng)的條目所占的空間,以覆蓋前面的條目。
      5.一種FAT文件系統(tǒng),其特征在于,包括查詢單元、分析單元、執(zhí)行單元,其中所述查詢單元,用于查詢并記錄刪除文件的位置和刪除文件對應(yīng)的條目數(shù)目,以及查詢并記錄末尾文件的位置及其條目數(shù)目,并將查詢結(jié)果發(fā)送至分析單元;分析單元,用于將查詢單元發(fā)送來的刪除文件對應(yīng)的條目數(shù)目和末尾文件對應(yīng)的條目數(shù)目進(jìn)行比較,在所述末尾文件對應(yīng)的條目數(shù)目等于所述刪除文件對應(yīng)的條目數(shù)目時,通知執(zhí)行單元用所述末尾文件的條目覆蓋所述刪除文件的條目;執(zhí)行單元,用于根據(jù)分析單元發(fā)送來的通知用所述末尾文件的條目覆蓋所述刪除文件的條目,并將原末尾文件處的條目內(nèi)容全部置零,將其對應(yīng)的標(biāo)記置可用標(biāo)記。
      6.如權(quán)利要求5所述的FAT文件系統(tǒng),其特征在于,所述查詢單元中,進(jìn)一步包括存儲模塊,用于存儲根目錄下表示各個條目是否可用的標(biāo)記。
      7.如權(quán)利要求6所述的FAT文件系統(tǒng),其特征在于,所述存儲模塊為一個大小與根目錄下的條目數(shù)目相一致的數(shù)組。
      8.如權(quán)利要求6所述的FAT文件系統(tǒng),其特征在于,所述分析單元,進(jìn)一步用于在所述末尾文件對應(yīng)的條目數(shù)目不等于所述刪除文件對應(yīng)的條目數(shù)目時,通知執(zhí)行單元將所述刪除文件后的第一個為不可用標(biāo)記的條目一直到末尾文件相應(yīng)的的條目逐個向前移動所述刪除文件對應(yīng)的條目所占的空間,以覆蓋前面的條目。
      全文摘要
      本發(fā)明提供一種FAT文件系統(tǒng)及其處理方法,其中,該方法包括下列步驟步驟A對要刪除的文件做刪除標(biāo)記,同時清除與要刪除的文件對應(yīng)的FAT表項;步驟B記錄該刪除文件的位置、以及該文件對應(yīng)的條目數(shù)目,并從該文件逐步搜索到根目錄的末尾,記錄末尾文件的位置及其條目數(shù)目;步驟C判斷末尾文件對應(yīng)的條目數(shù)目是否等于所述刪除文件對應(yīng)的條目數(shù)目,在末尾文件對應(yīng)的條目數(shù)目等于所述刪除文件對應(yīng)的條目數(shù)目時,用該末尾文件的條目覆蓋該刪除文件的條目,并將原末尾文件處的條目內(nèi)容全部置零,將其對應(yīng)的標(biāo)記置可用標(biāo)記。本發(fā)明的FAT文件系統(tǒng)及其處理方法,能夠重新利用被刪除文件名所占的空間,避免因文件被刪除造成的浪費。
      文檔編號G06F17/30GK101051317SQ200710099098
      公開日2007年10月10日 申請日期2007年5月11日 優(yōu)先權(quán)日2007年5月11日
      發(fā)明者孫豐強 申請人:北京中星微電子有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1