專利名稱:一種文件系統(tǒng)數(shù)據(jù)的管理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及一種文件系統(tǒng)數(shù)據(jù)的管理方法及系統(tǒng)。
背景技術(shù):
常見的文件系統(tǒng)有文件分配表(File Allocation Table,F(xiàn)AT)文件系統(tǒng)和新技術(shù)文件系統(tǒng)(New Technology File System, NTFS)等,其中被存儲(chǔ)卡所常用的是由微軟公司建立的FAT文件系統(tǒng),包括FAT12、FAT16和FAT32文件系統(tǒng)。FAT文件系統(tǒng)通常由主引導(dǎo)記錄和若干FAT分區(qū)組成,存儲(chǔ)卡上通常只有一個(gè)FAT 分區(qū),其中,該FAT分區(qū)由引導(dǎo)扇區(qū)(BPB)、FAT表、根目錄區(qū)(FDT)以及數(shù)據(jù)區(qū)組成。引導(dǎo)扇區(qū)(BPB)是FAT分區(qū)的第一個(gè)扇區(qū),即邏輯扇區(qū)0,主要用于記錄整個(gè)FAT 文件系統(tǒng)中相關(guān)的參數(shù)設(shè)置,例如每扇區(qū)字節(jié)數(shù)、每簇扇區(qū)數(shù)、每個(gè)FAT的扇區(qū)數(shù)、扇區(qū)總數(shù)、根目錄項(xiàng)數(shù)等等參數(shù)。FAT表記錄了文件系統(tǒng)中的組織關(guān)系,尤為重要,所以有兩個(gè)FAT表,F(xiàn)ATl表和 FAT2表,但其內(nèi)容完全一致,該表各表項(xiàng)共同記錄了存儲(chǔ)基本單元簇的鏈表索引結(jié)構(gòu),即每個(gè)文件的起始簇及其后續(xù)鏈接的各個(gè)簇號;并表明哪些是可用(FREE)的空簇。其中,簇為 FAT分區(qū)中文件數(shù)據(jù)的最小存儲(chǔ)單位,文件長度若不足一個(gè)簇,也要占用一個(gè)簇的空間;若長度不止一個(gè)簇,則通過由鏈表所指引的簇號,將文件數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)區(qū)中的多個(gè)簇的空間。根目錄區(qū)(FDT)記錄了文件系統(tǒng)根目錄的內(nèi)容,包括每個(gè)文件和文件夾的名稱、 大小、起始位置、創(chuàng)建時(shí)間、修改時(shí)間等基本內(nèi)容。文件系統(tǒng)中的每個(gè)文件都在目錄表中有記載。目錄和文件均表現(xiàn)為一個(gè)文件項(xiàng),并通過文件項(xiàng)的屬性字節(jié)加以區(qū)分。數(shù)據(jù)區(qū),實(shí)際的文件數(shù)據(jù)和目錄及子目錄數(shù)據(jù)存儲(chǔ)的區(qū)域,占用大部分存儲(chǔ)空間, 數(shù)據(jù)區(qū)以簇為存儲(chǔ)單位,通過文件的鏈表組織起來,數(shù)據(jù)的讀寫都是被動(dòng)的。FAT系統(tǒng)以簇為基本單位存放文件數(shù)據(jù),每個(gè)簇有N個(gè)扇區(qū),每個(gè)文件有M個(gè)簇,每簇的扇區(qū)數(shù)N與磁盤的總?cè)萘看笮∮嘘P(guān),文件占用的簇M多少與文件大小有關(guān)。剛格式化好的文件系統(tǒng),往里面拷貝文件,簇的占用順序是以源文件的目錄層次來存放的,即在數(shù)據(jù)區(qū),目錄數(shù)據(jù)和文件數(shù)據(jù)摻雜在一起存放,如圖1及2所示,這種存放模式將數(shù)據(jù)區(qū)分成很多碎片,在保護(hù)文件時(shí)計(jì)算復(fù)雜。文件夾的內(nèi)容可能是分層次的,文件夾下面有文件夾和文件,存放這些數(shù)據(jù)的時(shí)候如果摻雜在一起,就要分很多片段來處理,如圖2所述,文件數(shù)據(jù)區(qū)和目錄數(shù)據(jù)摻在在一起,分成的片段較多,在圖2中數(shù)據(jù)區(qū)被分成六個(gè)片段,在存儲(chǔ)器中,數(shù)據(jù)的保護(hù)是以地址范圍為依據(jù),在此情況下,六個(gè)片段則形成六個(gè)保護(hù)范圍,在保護(hù)文件時(shí)計(jì)算較復(fù)雜。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種文件系統(tǒng)數(shù)據(jù)的管理方法,旨在解決現(xiàn)有技術(shù)提供的系統(tǒng)文件中,目錄數(shù)據(jù)和文件數(shù)據(jù)的存放不規(guī)則無層次,將數(shù)據(jù)區(qū)分成很多碎片,不利于保護(hù)文件的問題。本發(fā)明是這樣實(shí)現(xiàn)的,一種文件系統(tǒng)數(shù)據(jù)的管理方法,所述方法包括下述步驟遞歸枚舉源文件夾,計(jì)算所有文件夾和文件的目錄及子目錄數(shù)據(jù)需要的扇區(qū)總數(shù);根據(jù)所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)將目標(biāo)磁盤的數(shù)據(jù)區(qū)分成目錄數(shù)據(jù)區(qū)與文件數(shù)據(jù)區(qū),并獲取文件數(shù)據(jù)區(qū)的扇區(qū)起始偏移地址信息;將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū),將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū);根據(jù)目錄數(shù)據(jù)和文件數(shù)據(jù)的寫入地址,更新文件系統(tǒng)的兩個(gè)文件分配表。本發(fā)明實(shí)施例的另一目的在于提供一種文件系統(tǒng)數(shù)據(jù)的管理系統(tǒng),所述系統(tǒng)包括扇區(qū)總數(shù)計(jì)算模塊,用于遞歸枚舉源文件夾,計(jì)算所有文件夾和文件的目錄及子目錄數(shù)據(jù)需要的扇區(qū)總數(shù);數(shù)據(jù)區(qū)劃分模塊,用于根據(jù)所述扇區(qū)總數(shù)計(jì)算模塊計(jì)算得到的所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)將目標(biāo)磁盤的數(shù)據(jù)區(qū)分成目錄數(shù)據(jù)區(qū)與文件數(shù)據(jù)區(qū);扇區(qū)起始偏移地址信息獲取模塊,用于獲取文件數(shù)據(jù)區(qū)的扇區(qū)起始偏移地址信息;寫入模塊,用于根據(jù)所述數(shù)據(jù)區(qū)劃分模塊對數(shù)據(jù)區(qū)的劃分,將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū),將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū);以及更新模塊,用于根據(jù)目錄數(shù)據(jù)和文件數(shù)據(jù)的寫入地址,更新文件系統(tǒng)的兩個(gè)文件分配表。在本發(fā)明實(shí)施例中,遞歸枚舉源文件夾,計(jì)算所有文件夾和文件的目錄及子目錄數(shù)據(jù)需要的扇區(qū)總數(shù);根據(jù)所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)將目標(biāo)磁盤的數(shù)據(jù)區(qū)分成目錄數(shù)據(jù)區(qū)與文件數(shù)據(jù)區(qū),并獲取文件數(shù)據(jù)區(qū)的扇區(qū)起始偏移地址信息;將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū),將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū);根據(jù)目錄數(shù)據(jù)和文件數(shù)據(jù)的寫入地址,更新文件系統(tǒng)的兩個(gè)文件分配表,從而實(shí)現(xiàn)將文件數(shù)據(jù)和目錄數(shù)據(jù)分開存儲(chǔ),有效簡化處理計(jì)算程序。
圖1是現(xiàn)有技術(shù)提供的文件系統(tǒng)的分區(qū)示意圖;圖2是現(xiàn)有技術(shù)提供的文件系統(tǒng)分區(qū)數(shù)據(jù)存放示意圖;圖3是本發(fā)明實(shí)施例提供的文件系統(tǒng)數(shù)據(jù)的管理方法的實(shí)現(xiàn)流程圖;圖4是本發(fā)明第二實(shí)施例提供的文件系統(tǒng)數(shù)據(jù)的管理方法的實(shí)現(xiàn)流程圖;圖5是本發(fā)明實(shí)施例提供的文件系統(tǒng)的分區(qū)示意圖;圖6是本發(fā)明實(shí)施例提供的文件系統(tǒng)分區(qū)數(shù)據(jù)存放示意圖;圖7是本發(fā)明實(shí)施例提供的文件系統(tǒng)數(shù)據(jù)的管理系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。在本發(fā)明實(shí)施例中,遞歸枚舉源文件夾,計(jì)算所有文件夾和文件的目錄及子目錄數(shù)據(jù)需要的扇區(qū)總數(shù);根據(jù)所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)將目標(biāo)磁盤的數(shù)據(jù)區(qū)分成目錄數(shù)據(jù)區(qū)與文件數(shù)據(jù)區(qū),并獲取文件數(shù)據(jù)區(qū)的扇區(qū)起始偏移地址信息;將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū),將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū);根據(jù)目錄數(shù)據(jù)和文件數(shù)據(jù)的寫入地址,更新文件系統(tǒng)的兩個(gè)文件分配表,從而實(shí)現(xiàn)將文件數(shù)據(jù)和目錄數(shù)據(jù)分開存儲(chǔ),有效簡化處理計(jì)算程序。本發(fā)明實(shí)施例的目的在于提供一種文件系統(tǒng)數(shù)據(jù)的管理方法,其特征在于,所述方法包括下述步驟遞歸枚舉源文件夾,計(jì)算所有文件夾和文件的目錄及子目錄數(shù)據(jù)需要的扇區(qū)總數(shù);根據(jù)所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)將目標(biāo)磁盤的數(shù)據(jù)區(qū)分成目錄數(shù)據(jù)區(qū)與文件數(shù)據(jù)區(qū),并獲取文件數(shù)據(jù)區(qū)的扇區(qū)起始偏移地址信息;將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū),將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū);根據(jù)目錄數(shù)據(jù)和文件數(shù)據(jù)的寫入地址,更新文件系統(tǒng)的兩個(gè)文件分配表。進(jìn)一步地,所述目錄數(shù)據(jù)區(qū)的空間大于或等于所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)。進(jìn)一步地,寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中目錄數(shù)據(jù)區(qū)和文件數(shù)據(jù)區(qū)的數(shù)據(jù)存放的地址連續(xù)。本發(fā)明實(shí)施例的另一目的在于提供一種文件系統(tǒng)數(shù)據(jù)的管理系統(tǒng),其特征在于, 所述系統(tǒng)包括扇區(qū)總數(shù)計(jì)算模塊,用于遞歸枚舉源文件夾,計(jì)算所有文件夾和文件的目錄及子目錄數(shù)據(jù)需要的扇區(qū)總數(shù);數(shù)據(jù)區(qū)劃分模塊,用于根據(jù)所述扇區(qū)總數(shù)計(jì)算模塊計(jì)算得到的所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)將目標(biāo)磁盤的數(shù)據(jù)區(qū)分成目錄數(shù)據(jù)區(qū)與文件數(shù)據(jù)區(qū);扇區(qū)起始偏移地址信息獲取模塊,用于獲取文件數(shù)據(jù)區(qū)的扇區(qū)起始偏移地址信息;寫入模塊,用于根據(jù)所述數(shù)據(jù)區(qū)劃分模塊對數(shù)據(jù)區(qū)的劃分,將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū),將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū);以及更新模塊,用于根據(jù)目錄數(shù)據(jù)和文件數(shù)據(jù)的寫入地址,更新文件系統(tǒng)的兩個(gè)文件分配表。進(jìn)一步地,所述目錄數(shù)據(jù)區(qū)的空間大于或等于所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)。進(jìn)一步地,寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中目錄數(shù)據(jù)區(qū)和文件數(shù)據(jù)區(qū)的數(shù)據(jù)存放的地址連續(xù)。
圖3示出了本發(fā)明實(shí)施例提供的文件系統(tǒng)數(shù)據(jù)的管理方法的實(shí)現(xiàn)流程,其具體的步驟如下所述在步驟SlOl中,遞歸枚舉源文件夾,計(jì)算所有文件夾和文件的目錄及子目錄數(shù)據(jù)需要的扇區(qū)總數(shù)。在步驟S102中,根據(jù)所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)將目標(biāo)磁盤的數(shù)據(jù)區(qū)分成目錄數(shù)據(jù)區(qū)與文件數(shù)據(jù)區(qū),并獲取文件數(shù)據(jù)區(qū)的扇區(qū)起始偏移地址信息。在本發(fā)明實(shí)施例中,該對數(shù)據(jù)區(qū)的劃分依據(jù)是目錄數(shù)據(jù)區(qū)的空間大于或等于所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)。即目錄數(shù)據(jù)區(qū)要能存儲(chǔ)所有目錄數(shù)據(jù)。在本發(fā)明實(shí)施例中,劃分之后得到的目錄數(shù)據(jù)區(qū)和文件數(shù)據(jù)區(qū)的數(shù)據(jù)存儲(chǔ)的地址是連續(xù)的,其中,為了節(jié)省目標(biāo)磁盤數(shù)據(jù)區(qū)的空間,使數(shù)據(jù)區(qū)能夠存放更多的目錄數(shù)據(jù)和文件數(shù)據(jù),所有的目錄及子目錄在目錄數(shù)據(jù)區(qū)存放的地址連續(xù),所有的文件數(shù)據(jù)在文件數(shù)據(jù)區(qū)存放的地址連續(xù)。在此情況下,目錄數(shù)據(jù)區(qū)和文件數(shù)據(jù)區(qū)各只有一個(gè)片段,即只形成二個(gè)保護(hù)范圍, 相比現(xiàn)有技術(shù)中目錄數(shù)據(jù)和文件數(shù)據(jù)摻雜在一起存放,形成多個(gè)片段,多個(gè)保護(hù)范圍來說, 在保護(hù)文件時(shí)計(jì)算較簡單。在步驟S103中,將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū), 將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū)。在本發(fā)明實(shí)施例中,在對數(shù)據(jù)區(qū)進(jìn)行劃分操作完成之后,將原先數(shù)據(jù)區(qū)中的數(shù)據(jù)進(jìn)行分類存儲(chǔ),即將目錄數(shù)據(jù)寫入目錄數(shù)據(jù)區(qū),將文件數(shù)據(jù)寫入文件數(shù)據(jù)區(qū),完成分類存儲(chǔ)的操作。在步驟S104中,根據(jù)目錄數(shù)據(jù)和文件數(shù)據(jù)的寫入地址,更新文件系統(tǒng)的兩個(gè)文件分配表。文件分配表是一個(gè)鏈表,用于標(biāo)識文件數(shù)據(jù)的存放順序,在寫入目錄數(shù)據(jù)和文件數(shù)據(jù)時(shí),需要記錄寫的數(shù)據(jù)是哪個(gè)簇,更新文件分配表時(shí)需要把對應(yīng)的簇鏈表填寫完整。 如FAT16中一個(gè)文件有占用了兩個(gè)簇,簇3、簇4,在文件分配表中就要在簇3位置填4標(biāo)明下一個(gè)簇是簇4,簇4位置填OxffffOxff標(biāo)明這個(gè)鏈表的結(jié)尾。圖4示出了本發(fā)明第二實(shí)施例提供的文件系統(tǒng)數(shù)據(jù)的管理方法的實(shí)現(xiàn)流程,其具體的步驟如下所述在步驟S201中,遞歸枚舉源文件夾,計(jì)算所有文件夾和文件的目錄及子目錄數(shù)據(jù)需要的扇區(qū)總數(shù)。在步驟S202中,根據(jù)所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)將目標(biāo)磁盤的數(shù)據(jù)區(qū)分成目錄數(shù)據(jù)區(qū)與文件數(shù)據(jù)區(qū),并獲取文件數(shù)據(jù)區(qū)的扇區(qū)起始偏移地址信息。在步驟S203中,計(jì)算所有文件數(shù)據(jù)需要的扇區(qū)總數(shù)。在步驟S204中,將所有文件數(shù)據(jù)需要的扇區(qū)總數(shù)與文件數(shù)據(jù)區(qū)的扇區(qū)總數(shù)進(jìn)行對比,判斷所有文件數(shù)據(jù)需要的扇區(qū)總數(shù)是否大于文件數(shù)據(jù)區(qū)的扇區(qū)總數(shù),是則執(zhí)行步驟 S205,否則執(zhí)行步驟S206。在步驟S205中,發(fā)出報(bào)警信息,提示源文件夾容量過大,目標(biāo)磁盤容量不夠存儲(chǔ)源文件。在步驟S206中,將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū),將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū)。在步驟S207中,根據(jù)目錄數(shù)據(jù)和文件數(shù)據(jù)的寫入地址,更新文件系統(tǒng)的兩個(gè)文件分配表。上述僅為本發(fā)明的一個(gè)實(shí)施例,在此不再贅述,但不用以限制本發(fā)明。作為本發(fā)明的一個(gè)具體實(shí)施例,如圖5和6所示,分別與上述圖1和圖2形成鮮明的對比在圖1中,沒有進(jìn)行區(qū)域劃分的數(shù)據(jù)區(qū),摻雜存放著目錄及子目錄數(shù)據(jù)和文件數(shù)據(jù),其具體的存放可以參考圖2所示,即目錄數(shù)據(jù)和文件數(shù)據(jù)存放毫無規(guī)則,隨機(jī)存放;在圖5中,通過本發(fā)明的實(shí)施方案,將目標(biāo)磁盤的數(shù)據(jù)區(qū)劃分為目錄數(shù)據(jù)區(qū)和文件數(shù)據(jù)區(qū),并將原先圖1所示的數(shù)據(jù)區(qū)的數(shù)據(jù)分類存儲(chǔ)到劃分后的目錄數(shù)據(jù)區(qū)和文件數(shù)據(jù)區(qū),對數(shù)據(jù)進(jìn)行了歸類存儲(chǔ),方便管理,其具體可參考圖6所示的示意圖,文件數(shù)據(jù)和目錄數(shù)據(jù)分開存儲(chǔ),便于管理。圖7示出了本發(fā)明實(shí)施例提供的文件系統(tǒng)數(shù)據(jù)的管理系統(tǒng)的結(jié)構(gòu)框圖,為了便于說明,圖中僅給出了與本發(fā)明實(shí)施例相關(guān)的部分,該文件系統(tǒng)數(shù)據(jù)的管理系統(tǒng)可以內(nèi)置于存儲(chǔ)器等硬件設(shè)備的軟件單元或硬件單元。扇區(qū)總數(shù)計(jì)算模塊11遞歸枚舉源文件夾,計(jì)算所有文件夾和文件的目錄及子目錄數(shù)據(jù)需要的扇區(qū)總數(shù);數(shù)據(jù)區(qū)劃分模塊12根據(jù)所述扇區(qū)總數(shù)計(jì)算模塊11計(jì)算得到的所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)將目標(biāo)磁盤的數(shù)據(jù)區(qū)分成目錄數(shù)據(jù)區(qū)與文件數(shù)據(jù)區(qū);扇區(qū)起始偏移地址信息獲取模塊13獲取文件數(shù)據(jù)區(qū)的扇區(qū)起始偏移地址信息;根據(jù)所述數(shù)據(jù)區(qū)劃分模塊12對數(shù)據(jù)區(qū)的劃分,寫入模塊14將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū),將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū);更新模塊15根據(jù)目錄數(shù)據(jù)和文件數(shù)據(jù)的寫入地址,更新文件系統(tǒng)的兩個(gè)文件分配表。作為本發(fā)明的一個(gè)實(shí)施例,文件數(shù)據(jù)扇區(qū)總數(shù)計(jì)算模塊16計(jì)算所有文件數(shù)據(jù)需要的扇區(qū)總數(shù);比對模塊17將所述文件數(shù)據(jù)扇區(qū)總數(shù)計(jì)算模塊計(jì)算得到的所有文件數(shù)據(jù)需要的扇區(qū)總數(shù)與文件數(shù)據(jù)區(qū)的扇區(qū)總數(shù)進(jìn)行對比,判斷所有文件數(shù)據(jù)需要的扇區(qū)總數(shù)是否大于文件數(shù)據(jù)區(qū)的扇區(qū)總數(shù);若所有文件數(shù)據(jù)需要的扇區(qū)總數(shù)大于文件數(shù)據(jù)區(qū)的扇區(qū)總數(shù),提示模塊18發(fā)出報(bào)警信息,提示源文件夾容量過大,目標(biāo)磁盤容量不夠存儲(chǔ)源文件;若所有文件數(shù)據(jù)需要的扇區(qū)總數(shù)小于或等于文件數(shù)據(jù)區(qū)的扇區(qū)總數(shù),則執(zhí)行所述寫入模塊14 將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū),將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū)的步驟。其中,上述各模塊的具體實(shí)施,如上述方法實(shí)施例所述,在此不再贅述,但不用以限制本發(fā)明。在本發(fā)明實(shí)施例中,遞歸枚舉源文件夾,計(jì)算所有文件夾和文件的目錄及子目錄數(shù)據(jù)需要的扇區(qū)總數(shù);根據(jù)所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)將目標(biāo)磁盤的數(shù)據(jù)區(qū)分成目錄數(shù)據(jù)區(qū)與文件數(shù)據(jù)區(qū),并獲取文件數(shù)據(jù)區(qū)的扇區(qū)起始偏移地址信息;將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū),將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū);根據(jù)目錄數(shù)據(jù)和文件數(shù)據(jù)的寫入地址,更新文件系統(tǒng)的兩個(gè)文件分配表,從而實(shí)現(xiàn)將文件數(shù)據(jù)和目錄數(shù)據(jù)分開存儲(chǔ),有效簡化處理計(jì)算程序。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種文件系統(tǒng)數(shù)據(jù)的管理方法,其特征在于,所述方法包括下述步驟 遞歸枚舉源文件夾,計(jì)算所有文件夾和文件的目錄及子目錄數(shù)據(jù)需要的扇區(qū)總數(shù); 根據(jù)所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)將目標(biāo)磁盤的數(shù)據(jù)區(qū)分成目錄數(shù)據(jù)區(qū)與文件數(shù)據(jù)區(qū),并獲取文件數(shù)據(jù)區(qū)的扇區(qū)起始偏移地址信息;將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū),將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū);根據(jù)目錄數(shù)據(jù)和文件數(shù)據(jù)的寫入地址,更新文件系統(tǒng)的兩個(gè)文件分配表。
2.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)將目標(biāo)磁盤的數(shù)據(jù)區(qū)分成目錄數(shù)據(jù)區(qū)與文件數(shù)據(jù)區(qū),并獲取文件數(shù)據(jù)區(qū)的扇區(qū)起始偏移地址信息的步驟之后,所述將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū),將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū)的步驟之前,還包括下述步驟計(jì)算所有文件數(shù)據(jù)需要的扇區(qū)總數(shù),并將所有文件數(shù)據(jù)需要的扇區(qū)總數(shù)與文件數(shù)據(jù)區(qū)的扇區(qū)總數(shù)進(jìn)行對比;若所有文件數(shù)據(jù)需要的扇區(qū)總數(shù)小于或等于文件數(shù)據(jù)區(qū)的扇區(qū)總數(shù),則執(zhí)行所述將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū),將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū)的步驟;若所有文件數(shù)據(jù)需要的扇區(qū)總數(shù)大于文件數(shù)據(jù)區(qū)的扇區(qū)總數(shù),則發(fā)出報(bào)警信息,提示源文件夾容量過大,目標(biāo)磁盤容量不夠存儲(chǔ)源文件。
3.如權(quán)利要求1所述的方法,其特征在于,所述目錄數(shù)據(jù)區(qū)的空間大于或等于所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)。
4.如權(quán)利要求1所述的方法,其特征在于,寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中目錄數(shù)據(jù)區(qū)和文件數(shù)據(jù)區(qū)的數(shù)據(jù)存放的地址連續(xù)。
5.一種文件系統(tǒng)數(shù)據(jù)的管理系統(tǒng),其特征在于,所述系統(tǒng)包括扇區(qū)總數(shù)計(jì)算模塊,用于遞歸枚舉源文件夾,計(jì)算所有文件夾和文件的目錄及子目錄數(shù)據(jù)需要的扇區(qū)總數(shù);數(shù)據(jù)區(qū)劃分模塊,用于根據(jù)所述扇區(qū)總數(shù)計(jì)算模塊計(jì)算得到的所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)將目標(biāo)磁盤的數(shù)據(jù)區(qū)分成目錄數(shù)據(jù)區(qū)與文件數(shù)據(jù)區(qū);扇區(qū)起始偏移地址信息獲取模塊,用于獲取文件數(shù)據(jù)區(qū)的扇區(qū)起始偏移地址信息; 寫入模塊,用于根據(jù)所述數(shù)據(jù)區(qū)劃分模塊對數(shù)據(jù)區(qū)的劃分,將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū),將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū);以及更新模塊,用于根據(jù)目錄數(shù)據(jù)和文件數(shù)據(jù)的寫入地址,更新文件系統(tǒng)的兩個(gè)文件分配表。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括文件數(shù)據(jù)扇區(qū)總數(shù)計(jì)算模塊,用于計(jì)算所有文件數(shù)據(jù)需要的扇區(qū)總數(shù); 比對模塊,用于將所述文件數(shù)據(jù)扇區(qū)總數(shù)計(jì)算模塊計(jì)算得到的所有文件數(shù)據(jù)需要的扇區(qū)總數(shù)與文件數(shù)據(jù)區(qū)的扇區(qū)總數(shù)進(jìn)行對比,判斷所有文件數(shù)據(jù)需要的扇區(qū)總數(shù)是否大于文件數(shù)據(jù)區(qū)的扇區(qū)總數(shù);提示模塊,用于若所有文件數(shù)據(jù)需要的扇區(qū)總數(shù)大于文件數(shù)據(jù)區(qū)的扇區(qū)總數(shù),則發(fā)出報(bào)警信息,提示源文件夾容量過大,目標(biāo)磁盤容量不夠存儲(chǔ)源文件;若所有文件數(shù)據(jù)需要的扇區(qū)總數(shù)小于或等于文件數(shù)據(jù)區(qū)的扇區(qū)總數(shù),則執(zhí)行所述寫入模塊將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū),將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū)的步驟。
7.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述目錄數(shù)據(jù)區(qū)的空間大于或等于所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)。
8.如權(quán)利要求5所述的系統(tǒng),其特征在于,寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中目錄數(shù)據(jù)區(qū)和文件數(shù)據(jù)區(qū)的數(shù)據(jù)存放的地址連續(xù)。
全文摘要
本發(fā)明適用于存儲(chǔ)技術(shù)領(lǐng)域,提供了一種文件系統(tǒng)數(shù)據(jù)的管理方法及系統(tǒng),所述方法包括下述步驟遞歸枚舉源文件夾,計(jì)算所有文件夾和文件的目錄及子目錄數(shù)據(jù)需要的扇區(qū)總數(shù);根據(jù)所有文件夾和文件的目錄數(shù)據(jù)需要的扇區(qū)總數(shù)將目標(biāo)磁盤的數(shù)據(jù)區(qū)分成目錄數(shù)據(jù)區(qū)與文件數(shù)據(jù)區(qū),并獲取文件數(shù)據(jù)區(qū)的扇區(qū)起始偏移地址信息;將所有目錄及子目錄數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的目錄數(shù)據(jù)區(qū),將所有文件數(shù)據(jù)寫入目標(biāo)磁盤數(shù)據(jù)區(qū)中的文件數(shù)據(jù)區(qū);根據(jù)目錄數(shù)據(jù)和文件數(shù)據(jù)的寫入地址,更新文件系統(tǒng)的兩個(gè)文件分配表。本發(fā)明實(shí)施例實(shí)現(xiàn)將文件數(shù)據(jù)和目錄數(shù)據(jù)分開存儲(chǔ),有效簡化處理計(jì)算程序。
文檔編號G06F17/30GK102253985SQ20111018103
公開日2011年11月23日 申請日期2011年6月30日 優(yōu)先權(quán)日2011年6月30日
發(fā)明者豆威 申請人:深圳市江波龍電子有限公司