国产精品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>

      一種文件存儲方法和裝置的制作方法

      文檔序號:6371291閱讀:177來源:國知局
      專利名稱:一種文件存儲方法和裝置的制作方法
      技術領域
      本發(fā)明涉及計算機技術領域,尤其涉及一種數據存儲方法和裝置,特別涉及一種文件存儲方法和裝置。
      背景技術
      在計算機中,磁盤上的每個磁道被分為若干個弧段,一個弧段就是磁盤的一個扇區(qū)。操作系統會將用戶的磁盤空間分為若干個磁盤分卷來進行管理,例如,常見的C盤就是一個磁盤分卷。每個磁盤分卷上的空間進一步被劃分為若干個簇。物理簇號(LogicalCluster Number, LCN)是磁盤分卷上的簇按照其在磁盤分卷上的物理位置順序得到的編號,用于表示其是該磁盤分卷上第幾個簇。簇是磁盤文件存儲和管理的最小單位,每一簇所包含的扇區(qū)可能會因為文件系統的不同而不同。在實際應用中,隨著計算機使用的時間變長,磁盤上會產生許多文件碎片,即文件的不同部分存儲在磁盤分卷上LCN不連續(xù)的多個簇上,例如圖I所示。圖I是磁盤上的文件存儲示意圖。圖I模擬了磁盤中的文件存儲情況,其中每一單元格代表一個簇,由圖I可見,A、B、C三個文件中,只有文件C是連續(xù)存儲的,文件A和文件B均包括文件碎片,即存儲文件A的簇的LCN不連續(xù),存儲文件B的簇的LCN也不連續(xù)。磁盤上不連續(xù)的文件碎片無形中增加了磁盤的尋道時間,降低了磁盤的IO性能?,F有技術中,通過磁盤碎片整理將這些零散的文件碎片重新排布到一起,使得同一個文件的所有內容在物理磁盤上的存儲位置連續(xù),從而優(yōu)化磁盤的IO性能。進一步地,在將零散的文件碎片重新排布到一起時,還可以對重新排布的文件進行壓縮,實現緊湊排布。可見,目前的磁盤碎片整理方案,僅僅是將同一個文件的文件碎片進行整合,使其連續(xù)存儲在磁盤上。然而,隨著時間的推移,很多已經整理過的文件,還會隨著內容的增加而再次產生文件碎片,導致需要反復進行磁盤碎片整理。

      發(fā)明內容
      有鑒于此,本發(fā)明提供了一種文件存儲方法和裝置,能夠在一定程度上防止文件碎片的產生。本發(fā)明的技術方案具體是這樣實現的一種文件存儲方法,該方法包括識別出可編輯格式的文件;對可編輯格式的文件進行連續(xù)存儲,并為該可編輯格式的文件預留存儲空間。一種文件存儲裝置,該裝置包括識別模塊和整理模塊;所述識別模塊,用于識別出可編輯格式的文件;所述整理模塊,用于對可編輯格式的文件進行連續(xù)存儲,并為該可編輯格式的文件預留存儲空間。由上述技術方案可見,本發(fā)明通過識別出可編輯格式的文件,不僅對可編輯格式的文件進行連續(xù)存儲,而且,還為可編輯格式的文件預留存儲空間,這樣,可編輯格式的文件新增加的內容可以存儲在該預留的存儲空間中,因此能夠一定程度上避免由于內容的增加而產生文件碎片??傊景l(fā)明通過識別出可編輯格式的文件,對可編輯格式的文件進行特殊處理,即在存儲時為該可編輯格式的文件預留存儲空間,因此能夠一定程度上防止文件碎片的產生。


      圖I是磁盤上的文件存儲示意圖; 圖2是本發(fā)明提供的文件存儲方法第一流程圖;圖3是本發(fā)明提供的文件存儲方法第二流程圖;圖4是本發(fā)明提供的對文件進行磁盤碎片整理的詳細流程圖。圖5是本發(fā)明提供的可編輯格式文件的識別流程圖;圖6是B文件和A文件的初始分布模擬示意圖;圖7是為B文件和A文件預留了存儲空間、且將B文件和A文件存儲在高物理簇號的存儲位置時的分布模擬示意圖;圖8是本發(fā)明提供的文件存儲裝置第一結構圖;圖9是本發(fā)明提供的文件存儲裝置第二結構圖。
      具體實施例方式圖2是本發(fā)明提供的文件存儲方法第一流程圖。如圖2所示,該流程包括步驟201,識別出可編輯格式的文件。步驟202,對可編輯格式的文件進行連續(xù)存儲,并為該可編輯格式的文件預留存儲空間??梢?,圖2所示方法通過識別出可編輯格式的文件,對可編輯格式的文件進行特殊處理,即在存儲時為該可編輯格式的文件預留存儲空間,因此能夠一定程度上防止文件碎片的產生圖3是本發(fā)明提供的文件存儲方法第二流程圖。如圖3所示,該方法包括步驟301,識別出可編輯格式的文件;步驟302,計算該文件占用的存儲空間的變化率;步驟303,根據該變化率確定需要為該文件預留的存儲空間大?。徊襟E304,對該文件進行連續(xù)存儲,并根據所述需要為該文件預留的存儲空間大小,在該文件的尾部預留存儲空間??梢?,圖3所示方法在圖2所示方法基礎上,一方面,通過獲取可編輯格式文件的存儲空間變化率、根據該變化率確定需要為可編輯格式文件預留的存儲空間大小,使得可編輯格式文件預留的存儲空間大小能夠適應可編輯格式文件占用的存儲空間變化情況,并提高了存儲空間的利用率;另一方面,通過在可編輯格式文件的尾部預留存儲空間,使得可編輯格式文件新增加的內容可以直接存儲在尾部預留的存儲空間中,從而完全避免了文件碎片的產生。其中,本發(fā)明所述可編輯格式,是指能夠被用戶或者程序修改內容的文件格式,例如,以“ log”、“.d0CX”、“. wps”或“ db”為后綴名的文件就是可編輯格式的文件。相對于可編輯格式,不可編輯格式是指一般不能被用戶或者程序修改內容的文件格式,例如以“.dll”為后綴名的二進制可執(zhí)行文件、以“.roF”為后綴名的文件等都是不可編輯格式的文件。
      圖I和圖2提供的文件存儲方法,典型地,可以應用在磁盤碎片整理流程中。其中,對于不可編輯格式的文件的碎片整理方式可以不做限定,例如,可以對其進行連續(xù)存儲以及緊湊排布。下面以對不可編輯格式的文件進行緊湊排布式的碎片整理為例,示例性介紹對文件進行磁盤碎片整理的詳細流程,具體請參見圖4。圖4是本發(fā)明提供的對文件進行磁盤碎片整理的詳細流程圖。如圖4所示,該流程包括步驟401,判斷文件是否為可編輯格式,如果是,執(zhí)行步驟402,否則,執(zhí)行步驟405。步驟402,獲取該文件占用的存儲空間的變化率。步驟403,根據該變化率確定需要為該文件預留的存儲空間大小。步驟404,對該文件進行連續(xù)存儲,并根據所述需要為該文件預留的存儲空間大小,在該文件的尾部預留存儲空間,結束本流程。步驟405,對該文件進行緊湊排布,結束本流程。在圖2-圖4中,均涉及如何識別文件是否為可編輯格式,在實際應用中,可以根據文件的后綴名和/或文件內容確定文件是否是可編輯格式,例如可以根據文件的后綴名判斷該文件是否是可編輯格式;或者,可以識別文件的起始字符串,根據文件的起始字符串判斷該文件是否是可編輯格式;或者,可以識別出文件內容中的可打印字符,確定可打印字符在文件內容中的出現頻率,在所述出現頻率高于預定閾值時,確定該文件是可編輯格式,反之該文件不是可編輯格式。其中,所述可打印字符,是指能夠通過鍵盤等輸入設備輸入到電腦中并進行顯示的字符,與可打印字符相反的,無法通過鍵盤等輸入設備輸入到電腦中的字符是不可打印字符,例如,有時電腦中顯示的亂碼字符,就是不可打印字符。上述用于識別文件是否是可編輯格式的各種方法可以單獨使用,也可以組合使用,例如,可以先根據文件的后綴名判斷文件是否是可編輯格式,如果文件沒有后綴名,則可以進一步根據文件的起始字符串或者文件內容中的可打印字符的出現頻率判斷文件是否是可編輯格式。下面結合圖5對可編輯格式文件的識別流程進行示例性介紹,具體請參見圖5。圖5是本發(fā)明提供的可編輯格式文件的識別流程圖。如圖5所示,該流程包括步驟501,判斷文件是否具有可識別的后綴名,如果是,執(zhí)行步驟502,否則,執(zhí)行步驟503。本步驟中,可以先判斷文件是否具有后綴名,如果具有不具有后綴名,則直接執(zhí)行步驟503,如果具有后綴名,但是根據該后綴名無法判斷該文件的格式是否是可編輯格式,則執(zhí)行步驟503,如果根據該后綴名能夠判斷該文件的格式是否是可編輯格式,即該文件具有可識別的后綴名,則執(zhí)行步驟502。步驟502,根據文件的后綴名判斷該文件是否是可編輯格式,并執(zhí)行步驟507。步驟503,識別出文件內容中的起始字符串。步驟504,根據該起始字符串判斷該文件是否是可編輯格式,如果能夠判斷出文件是否是可編輯格式,則執(zhí)行步驟507,如果不能判斷出文件是否是可編輯格式,執(zhí)行步驟505。本步驟中,可以先根據文件起始字符串的內容,判斷是否能夠識別文件的具體格 式,如果能夠識別出文件的具體格式,再根據該具體格式判斷該文件的具體格式是否是可編輯格式,如果不能識別文件的具體格式、或者根據文件的具體格式不能判斷文件是否是可編輯格式,則執(zhí)行步驟505。其中,所述起始字符串的內容一般包括文件頭的內容。其中,由于可執(zhí)行文件、圖像文件等某些具體的文件格式,其起始字符串的內容和/或結構都是固定的,因此可以根據文件的起始字符串識別文件的具體格式。步驟505,識別出文件內容中的可打印字符,確定可打印字符在文件內容中的出現頻率。步驟506,根據可打印字符在文件內容中的出現頻率確定文件是否是可編輯格式。一般地,文件內容中可打印字符的出現頻率越高,說明該文件是可編輯格式的文件的可能性越大,因此,可以根據可打印字符在文件內容中的出現頻率確定文件是否是可編輯格式。例如,在所述出現頻率高于預定閾值時,確定該文件是可編輯格式,反之該文件不是可編輯格式。其中,所述預定閾值可以是預設的固定數值,也可以是根據預設的特定規(guī)則而確定的數值。步驟507,輸出文件是否是可編輯格式的判斷結果。本發(fā)明中,在獲取文件占用的存儲空間的變化率時,可以依據以往對該文件的記錄信息獲取所述變化率,例如根據文件變動日期、文件變動大小、文件源大小、文件變動后的大小等信息獲取所述變化率。所述變化率僅僅用于反映文件大小的變化速度,并不限定于特定的獲取方法。例如,假設第二時間點Btime是第一時間點Atime之后的時間點,可以根據在第二時間點Bt ime時該文件占用的存儲空間大小Bsize,和在第一時間點Atime時該文件占用的存儲空間大小Asize,確定該文件占用的存儲空間的變化率。因為所述變化率能夠反映文件大小的變化速度,因此可以根據該變化率的取值為文件預留合適的存儲空間,例如,為文件大小增長較快的文件分配較多的預留空間,為文件大小增長較慢的文件分配較小的預留空間,對于文件大小不增長甚至負增長(即文件大小變小了、呈減小趨勢)的文件,則可以不分配預留空間。例如,在文件占用的存儲空間的變化率為負數或0時,不為該文件預留存儲空間,在該變化率為正時,為該文件預留的存儲空間不小于為變化率小于該文件的變化率的其他文件預留的存儲空間,比如,在變化率為正時,可以是文件的變化率越大,則為文件預留的存儲空間越大,也可以將變化率劃分為多個區(qū)間,當不同的文件的變化率處于同一個區(qū)間時,可以為該不同的文件分配相同大小的存儲空間,當不同的文件的變化率處于不同區(qū)間時,為變化率較大的文件預留較大的存儲空間。其中,對于不需要預留存儲空間的可編輯格式的文件,可以與不可編輯格式的文件采用相同的碎片整理方法,例如,可以采用緊湊排布方式進行碎片整理。本發(fā)明中,為該文件預留存儲空間的方法具體可以包括通過編程接口,將文件的大小設置為該文件的當前實際大小和需要為該文件預留的存儲空間大小之和,根據為該文件設置的文件大小存儲該文件。比如,實際大小為IK的文件,如果要為此文件預留IK的空間,則可以通過編程接口將該文件的大小設置為2K,并按照該文件的大小為2K來存儲該文件。其中,雖然為該文件增加了 IK的存儲空間,但是該IK的存儲空間當前并未占用,而僅僅是為未來可能要添加的內容預留了存儲空間。而預留的該IK的存儲空間,由于已經被設置為屬于該文件,因此,文件系統也無法將預留的該IK的存儲空間分配給其他文件。另外,本申請人還通過對可編輯格式文件的存儲位置的研究,提供了避免將預留 存儲空間分配給其他文件的優(yōu)選方法。具體地,本申請人注意到,文件系統一般都是由低物理簇號向高物理簇號分配存儲空間,若可編輯格式文件存儲位置的物理簇號較低,那么,如果可編輯格式文件后面預留有空閑的存儲空間,但是該空閑的存儲空間并沒有設置為屬于該文件,即沒有根據該文件的實際大小和預留存儲空間的大小之和存儲該文件,則這部分空閑的存儲空間很可能會被文件系統分配給其它文件。為了防止此種情況發(fā)生,本發(fā)明提出,預先從LCN高于預定閾值的磁盤空間劃分出專門的存儲區(qū)域,用于存儲可編輯格式的文件,則對可編輯格式文件進行連續(xù)存儲時,將可編輯格式文件存儲在該專門的存儲區(qū)域內。其中,LCN高于的所述預定閾值,可以是預設的固定數值,也可以是根據預設的特定規(guī)則確定出的、能夠依據特定情況的變化而變化的數值。當將可編輯格式文件存儲在該專門的存儲區(qū)域內時,由于文件系統由低物理簇號向高物理簇號分配空間,所以除非低物理簇號分配的空間全部被使用,否則文件系統不會將用于存儲可編輯格式文件的存儲區(qū)域的空間分配用于他用。因此,當將該文件存儲在預先從物理簇號LCN高于預定閾值的磁盤空間劃分出的存儲區(qū)域中時,即使在該文件的尾部預留了存儲空間,但是沒有將該預留的存儲空間設置為屬于該文件,則該預留的存儲空間也不會被文件系統分配給其他文件。此時,為該文件預留存儲空間的方法可以包括將該文件的下一可編輯格式文件的起始存儲地址,確定為該文件的結束存儲地址與為該文件預留的存儲空間大小之和。例如,文件I的結束存儲地址為Al,下一文件(記為文件2)的起始存儲地址為A2,則Al與A2之間預留有為文件I預留的存儲空間。當然,本發(fā)明提供的通過編程接口將文件大小設置為該文件的實際大小與預留空間大小之和的方法、以及將可編輯格式的文件存儲在LCN高于預定閾值的磁盤空間的方法也可以同時使用。下面結合例子,對本發(fā)明中為可編輯格式文件預留存儲空間以及可編輯格式文件的存儲位置進行示例性介紹,具體請參見圖6-圖7。圖6是B文件和A文件的初始分布模擬示意圖。
      圖6中,每個格子代表IK的存儲空間,B文件和A文件的初始存儲位置如圖6所
      /Jn o圖7是為B文件和A文件預留了存儲空間、且將B文件和A文件存儲在高物理簇號的存儲位置時的分布模擬示意圖。圖7中,B文件和A文件都是可編輯格式文件,B文件需要預留IK的存儲空間,A文件需要預留2K的存儲空間,由圖7可見,B文件和A文件都被移到了高物理簇號的存儲位置上,且A文件后面預留了 2K的未分配存儲空間,B文件后面預留了 IK的未分配存儲空間。根據本發(fā)明提供的上述方法,本發(fā)明還提供了相應的裝置,具體請參見圖8。 圖8是本發(fā)明提供的文件存儲裝置第一結構圖。如圖8所示,該裝置包括識別模塊801和整理模塊802 ;識別模塊801,用于識別出可編輯格式的文件。整理模塊802,用于對可編輯格式的文件進行連續(xù)存儲,并為該可編輯格式的文件預留存儲空間。整理模塊802,可以用于在該可編輯格式的文件的尾部預留存儲空間。整理模塊802,具體可以用于通過編程接口,將可編輯格式的文件的大小設置為該可編輯格式的文件的當前實際大小和需要為該可編輯格式的文件預留的存儲空間大小之和,根據為該可編輯格式的文件設置的文件大小存儲該可編輯格式的文件。和/或,整理模塊802,具體可以用于將可編輯格式的文件存儲在預先從物理簇號LCN高于預定閾值的磁盤空間劃分出的存儲區(qū)域中。其中,識別模塊801,可以用于根據文件的后綴名判斷該文件是否是可編輯格式;和/或,識別文件的起始字符串,根據文件的起始字符串判斷該文件是否是可編輯格式;和/或,識別出文件內容中的可打印字符,確定可打印字符在文件內容中的出現頻率,在所述出現頻率高于預定閾值時,確定該文件是可編輯格式,反之該文件不是可編輯格式。圖9是本發(fā)明提供的文件存儲裝置第二結構圖。如圖9所示,該裝置包括識別模塊901、計算模塊902、確定模塊903和整理模塊904。其中的識別模塊901與圖8中的識別模塊801相同,整理模塊904與圖8中的整理模塊802相同。計算模塊902,用于計算可編輯格式的文件占用的存儲空間的變化率。確定模塊903,用于根據該變化率確定需要為該可編輯格式的文件預留的存儲空間大小。整理模塊904,還可以用于根據所述需要為該可編輯格式的文件預留的存儲空間大小,在該可編輯格式的文件的尾部預留存儲空間。其中,確定模塊903,可以用于在該變化率為負數或0時,不為該文件預留存儲空間,在該變化率為正數時,為該文件預留的存儲空間不小于為變化率小于該文件的變化率的其他文件預留的存儲空間。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內。
      權利要求
      1.一種文件存儲方法,其特征在于,該方法包括識別出可編輯格式的文件;對可編輯格式的文件進行連續(xù)存儲,并為該可編輯格式的文件預留存儲空間。
      2.根據權利要求I所述的方法,其特征在于,所述預留存儲空間包括在該可編輯格式的文件的尾部預留存儲空間。
      3.根據權利要求I或2所述的方法,其特征在于,所述預留存儲空間包括通過編程接口,將可編輯格式的文件的大小設置為該可編輯格式的文件的當前實際大小和需要為該可編輯格式的文件預留的存儲空間大小之和,根據為該可編輯格式的文件設置的文件大小存儲該可編輯格式的文件。
      4.根據權利要求I或2所述的方法,其特征在于,所述對可編輯格式的文件進行連續(xù)存儲包括將可編輯格式的文件存儲在預先從物理簇號LCN高于預定閾值的磁盤空間劃分出的存儲區(qū)域中。
      5.根據權利要求I或2所述的方法,其特征在于,該方法還包括計算可編輯格式的文件占用的存儲空間的變化率,根據該變化率確定需要為該可編輯格式的文件預留的存儲空間大?。凰鲱A留存儲空間包括根據所述需要為該可編輯格式的文件預留的存儲空間大小, 為該可編輯格式的文件預留存儲空間。
      6.根據權利要求5所述的方法,其特征在于,所述根據該變化率確定需要為該可編輯格式的文件預留的存儲空間大小包括在該變化率為負數或O時,不為該文件預留存儲空間,在該變化率為正數時,為該文件預留的存儲空間不小于為變化率小于該文件的變化率的其他文件預留的存儲空間。
      7.根據權利要求I所述的方法,其特征在于,所述識別出可編輯格式的文件包括根據文件的后綴名判斷該文件是否是可編輯格式;和/或,識別文件的起始字符串,根據文件的起始字符串判斷該文件是否是可編輯格式;和/或,識別出文件內容中的可打印字符,確定可打印字符在文件內容中的出現頻率, 在所述出現頻率高于預定閾值時,確定該文件是可編輯格式,反之該文件不是可編輯格式。
      8.一種文件存儲裝置,其特征在于,該裝置包括識別模塊和整理模塊;所述識別模塊,用于識別出可編輯格式的文件;所述整理模塊,用于對可編輯格式的文件進行連續(xù)存儲,并為該可編輯格式的文件預留存儲空間。
      9.根據權利要求8所述的裝置,其特征在于,所述整理模塊,用于在該可編輯格式的文件的尾部預留存儲空間。
      10.根據權利要求8或9所述的裝置,其特征在于,所述整理模塊,用于通過編程接口,將可編輯格式的文件的大小設置為該可編輯格式的文件的當前實際大小和需要為該可編輯格式的文件預留的存儲空間大小之和,根據為該可編輯格式的文件設置的文件大小存儲該可編輯格式的文件。
      11.根據權利要求8或9所述的裝置,其特征在于,所述整理模塊,用于將可編輯格式的文件存儲在預先從物理簇號LCN高于預定閾值的磁盤空間劃分出的存儲區(qū)域中。
      12.根據權利要求8或9所述的裝置,其特征在于,該裝置還包括計算模塊和確定模塊;所述計算模塊,用于計算可編輯格式的文件占用的存儲空間的變化率;所述確定模塊,用于根據該變化率確定需要為該可編輯格式的文件預留的存儲空間大小;所述整理模塊,用于根據所述需要為該可編輯格式的文件預留的存儲空間大小,為該可編輯格式的文件預留存儲空間。
      13.根據權利要求12所述的裝置,其特征在于,所述確定模塊,用于在該變化率為負數或O時,不為該文件預留存儲空間,在該變化率為正數時,為該文件預留的存儲空間不小于為變化率小于該文件的變化率的其他文件預留的存儲空間。
      14.根據權利要求8所述的裝置,其特征在于,所述識別模塊,用于根據文件的后綴名判斷該文件是否是可編輯格式;和/或,識別文件的起始字符串,根據文件的起始字符串判斷該文件是否是可編輯格式;和/或,識別出文件內容中的可打印字符,確定可打印字符在文件內容中的出現頻率,在所述出現頻率高于預定閾值時,確定該文件是可編輯格式,反之該文件不是可編輯格式。
      全文摘要
      本發(fā)明實施例公開了一種文件存儲方法和裝置。該方法包括識別出可編輯格式的文件,對可編輯格式的文件進行連續(xù)存儲,并為該可編輯格式的文件預留存儲空間。應用本發(fā)明能夠在一定程度上防止文件碎片的產生。
      文檔編號G06F17/30GK102693325SQ201210192669
      公開日2012年9月26日 申請日期2012年6月12日 優(yōu)先權日2012年6月12日
      發(fā)明者林道正 申請人:騰訊科技(深圳)有限公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1