35]以下通過特定的具體實(shí)例說明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過另外不同的【具體實(shí)施方式】加以實(shí)施或應(yīng)用,本說明書中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒有背離本發(fā)明的精神下進(jìn)行各種修飾或改變。需說明的是,在不沖突的情況下,以下實(shí)施例及實(shí)施例中的特征可以相互組合。
[0036]需要說明的是,以下實(shí)施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實(shí)際實(shí)施時(shí)的組件數(shù)目、形狀及尺寸繪制,其實(shí)際實(shí)施時(shí)各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復(fù)雜。
[0037]對(duì)于第一次掛接到路由器上的存儲(chǔ)設(shè)備,啟動(dòng)minidlna進(jìn)程,這時(shí)候存儲(chǔ)設(shè)備中是沒有索引文件數(shù)據(jù)庫的,這種情況下minidlna只能創(chuàng)建新的數(shù)據(jù)庫,然后依次遍歷所有的文件,分析其屬性并加入到相應(yīng)的索引文件數(shù)據(jù)庫中。但是如果存儲(chǔ)設(shè)備以前掛接到過路由器上,存儲(chǔ)設(shè)備中已經(jīng)有相應(yīng)的索引數(shù)據(jù)庫,這種情況minidlna進(jìn)程就應(yīng)該保留原始的數(shù)據(jù)庫,然后對(duì)數(shù)據(jù)庫做添加刪除。本發(fā)明所做的工作就適合這種情況。
[0038]請(qǐng)參閱圖1,本發(fā)明提供一種快速獲取外接存儲(chǔ)設(shè)備的文件的方法,所述快速獲取外接存儲(chǔ)設(shè)備的文件的方法包括:
[0039 ] SI OI,檢測(cè)當(dāng)前掛接的存儲(chǔ)設(shè)備在數(shù)據(jù)庫中是否存在對(duì)應(yīng)的索弓I文件數(shù)據(jù)庫。
[0040]S102,若不存在對(duì)應(yīng)的索引文件數(shù)據(jù)庫,則依次遍歷所述存儲(chǔ)設(shè)備的所有文件,并將所有文件的信息依次添加到所述數(shù)據(jù)庫中,生成對(duì)應(yīng)的索引文件數(shù)據(jù)庫。
[0041 ] S103,若存在對(duì)應(yīng)的索引文件數(shù)據(jù)庫,則保留所述對(duì)應(yīng)的索引文件數(shù)據(jù)庫,并遍歷分析所述對(duì)應(yīng)的索引文件數(shù)據(jù)庫中記錄的文件是否存在所述存儲(chǔ)設(shè)備中,若存在則保留對(duì)應(yīng)記錄,所不存在則刪除對(duì)應(yīng)記錄。其中,在保留對(duì)應(yīng)記錄后,可以繼續(xù)比較所述數(shù)據(jù)庫中的對(duì)應(yīng)記錄所記錄的文件修改時(shí)間與所述存儲(chǔ)設(shè)備中對(duì)應(yīng)的文件的修改時(shí)間是否一致;若一致,則不對(duì)所述數(shù)據(jù)庫進(jìn)行操作;若不一致,則刪除對(duì)應(yīng)記錄,重新添加對(duì)應(yīng)記錄。進(jìn)一步,重新添加對(duì)應(yīng)記錄的一種實(shí)現(xiàn)過程包括:分析文件的所有屬性,編解碼方式;提煉出文件包含的信息;將所述文件的相關(guān)信息依次添加到所述數(shù)據(jù)庫中,生成文件的對(duì)應(yīng)記錄。
[0042]S104,遍歷所述存儲(chǔ)設(shè)備中的所有文件,判斷所述所有文件在所述對(duì)應(yīng)的索引文件數(shù)據(jù)庫中是否存在對(duì)應(yīng)記錄;若存在對(duì)應(yīng)記錄,則保留對(duì)應(yīng)記錄;若不存在對(duì)應(yīng)記錄,則重新添加對(duì)應(yīng)記錄。其中,在保留對(duì)應(yīng)記錄后,可以繼續(xù)比較所述數(shù)據(jù)庫中的對(duì)應(yīng)記錄所記錄的文件修改時(shí)間與所述存儲(chǔ)設(shè)備中對(duì)應(yīng)的文件的修改時(shí)間是否一致;若一致,則不對(duì)所述數(shù)據(jù)庫進(jìn)行操作;若不一致,則刪除對(duì)應(yīng)記錄,重新添加對(duì)應(yīng)記錄。進(jìn)一步,重新添加對(duì)應(yīng)記錄的一種實(shí)現(xiàn)過程包括:分析文件的所有屬性,編解碼方式;提煉出文件包含的信息;將所述文件的相關(guān)信息依次添加到所述數(shù)據(jù)庫中,生成文件的對(duì)應(yīng)記錄。
[0043]在具體實(shí)現(xiàn)過程中,當(dāng)以前掛接到過路由器上的存儲(chǔ)設(shè)備掛接上來時(shí),minidlna進(jìn)程會(huì)先檢測(cè)是否已有索引文件數(shù)據(jù)庫SQLite(SQLite是一款輕型的數(shù)據(jù)庫)。
[0044]如果不存在,則創(chuàng)建新的數(shù)據(jù)庫,然后依次遍歷存儲(chǔ)設(shè)備上的所有的文件,分析其文件所有屬性,編解碼方式,提煉出文件包含的信息等,依次添加到數(shù)據(jù)庫中。
[0045]如果已經(jīng)存在,則保留該存儲(chǔ)設(shè)備的數(shù)據(jù)庫(即索引文件數(shù)據(jù)庫)。
[0046]然后,首先遍歷數(shù)據(jù)庫(即索引文件數(shù)據(jù)庫),分析數(shù)據(jù)庫(即索引文件數(shù)據(jù)庫)中記錄的文件是否在該存儲(chǔ)設(shè)備中,如果不存在,說明該文件已經(jīng)被刪除,則刪除數(shù)據(jù)庫中的有關(guān)該文件的對(duì)應(yīng)記錄。
[0047]其次遍歷存儲(chǔ)設(shè)備中的所有文件,在數(shù)據(jù)庫中提取其相應(yīng)文件的記錄,如果沒有記錄,則說明該文件是新添加的文件,需要在數(shù)據(jù)庫中添加相應(yīng)的記錄。如果有,則比較數(shù)據(jù)庫中記錄的文件修改時(shí)間和存儲(chǔ)設(shè)備中的文件現(xiàn)在的修改時(shí)間是否一致,如果一致則說明文件沒有變化,不對(duì)數(shù)據(jù)庫操作。如果不一致,則說明用戶對(duì)文件做過修改,先刪除數(shù)據(jù)庫中的這條記錄,再重新對(duì)文件進(jìn)行分析,決定是否在數(shù)據(jù)庫中添加相應(yīng)的記錄。
[0048]綜上所述,本發(fā)明通過對(duì)數(shù)據(jù)庫的判斷,確定是需要保留存儲(chǔ)設(shè)備的原有索引文件數(shù)據(jù)庫,還是需要重建索引文件數(shù)據(jù)庫;重建數(shù)據(jù)庫的過程與現(xiàn)有技術(shù)一樣,不會(huì)節(jié)約時(shí)間;若保留數(shù)據(jù)庫,則根據(jù)上述邏輯對(duì)數(shù)據(jù)庫進(jìn)行修改,此修改過程只需更改有變化的文件記錄,對(duì)于無變化的文件記錄無需更改,這一過程的實(shí)現(xiàn)比現(xiàn)有技術(shù)節(jié)約很多時(shí)間,避免了重建數(shù)據(jù)庫的資源消耗。
[0049]本發(fā)明所述的快速獲取外接存儲(chǔ)設(shè)備的文件的方法的保護(hù)范圍不限于本實(shí)施例列舉的步驟執(zhí)行順序,凡是根據(jù)本發(fā)明的原理所做的現(xiàn)有技術(shù)的步驟增減、步驟替換所實(shí)現(xiàn)的方案都包括在本發(fā)明的保護(hù)范圍內(nèi)。
[0050]本發(fā)明還提供一種快速獲取外接存儲(chǔ)設(shè)備的文件的系統(tǒng),所述快速獲取外接存儲(chǔ)設(shè)備的文件的系統(tǒng)可以實(shí)現(xiàn)本發(fā)明所述的快速獲取外接存儲(chǔ)設(shè)備的文件的方法,但本發(fā)明所述的快速獲取外接存儲(chǔ)設(shè)備的文件的方法的實(shí)現(xiàn)裝置包括但不限于本實(shí)施例列舉的快速獲取外接存儲(chǔ)設(shè)備的文件的系統(tǒng)的結(jié)構(gòu),凡是根據(jù)本發(fā)明的原理所做的現(xiàn)有技術(shù)的結(jié)構(gòu)變形和替換,都包括在本發(fā)明的保護(hù)范圍內(nèi)。
[0051]參見圖2所示,所述快速獲取外接存儲(chǔ)設(shè)備的文件的系統(tǒng)200包括:檢測(cè)模塊210,數(shù)據(jù)庫重建模塊220,數(shù)據(jù)庫更新模塊230,數(shù)據(jù)庫校正模塊240,記錄生成模塊250。
[0052]所述檢測(cè)模塊210檢測(cè)當(dāng)前掛接的存儲(chǔ)設(shè)備在數(shù)據(jù)庫中是否存在對(duì)應(yīng)的索引文件數(shù)據(jù)庫。
[0053]所述數(shù)據(jù)庫重建模塊220與所述檢測(cè)模塊210相連,在不存在對(duì)應(yīng)的索引文件數(shù)據(jù)庫時(shí),依次遍歷所述存儲(chǔ)設(shè)備的所有文件,并將所有文件的信息依次添加到所述數(shù)據(jù)庫中,生成對(duì)應(yīng)的索引文件數(shù)據(jù)庫。
[0054]所述數(shù)據(jù)庫更新模塊230與所述檢測(cè)模塊210相連,在存在對(duì)應(yīng)的索引文件數(shù)據(jù)庫時(shí),保留所述對(duì)應(yīng)的索引文件數(shù)據(jù)庫,并遍歷分析所述對(duì)應(yīng)的索引文件數(shù)據(jù)庫中記錄的文件是否存在所述存儲(chǔ)設(shè)備中,若存在則保留對(duì)應(yīng)記錄,所不存在則刪除對(duì)應(yīng)記錄;遍歷所述存儲(chǔ)設(shè)備中的所有文件,判斷所述所有文件在所述對(duì)應(yīng)的索引文件數(shù)據(jù)庫中是否存在對(duì)應(yīng)記錄;若存在對(duì)應(yīng)記錄,則保留或更新對(duì)應(yīng)記錄;若不存在對(duì)應(yīng)記錄,則重新添加對(duì)應(yīng)記錄。
[0055]所述數(shù)據(jù)庫校正模塊240與所述數(shù)據(jù)庫更新模塊230相連,比較所述數(shù)據(jù)庫中的對(duì)應(yīng)記錄所記錄的文件修改時(shí)間與所述存儲(chǔ)設(shè)備中對(duì)應(yīng)的文件的修改時(shí)間是否一致;若一致,則不對(duì)所述數(shù)據(jù)庫進(jìn)行操作;若不一致,則刪除對(duì)應(yīng)記錄,重新添加對(duì)應(yīng)記錄。
[0056]所述記錄生成模塊250與所述數(shù)據(jù)庫新建模塊220、數(shù)據(jù)庫更新模塊230、數(shù)據(jù)庫校正模塊240分別相連,分析文件的所有屬性,編解碼方式,提煉出文件包含的信息,將所述文件的相關(guān)信息依次添加到所述數(shù)據(jù)庫中,生成文件的對(duì)應(yīng)記錄。
[0057]本發(fā)明通過對(duì)數(shù)據(jù)庫的判斷,避免了對(duì)重新掛接的存儲(chǔ)設(shè)備的數(shù)據(jù)庫的重建,在文件容量較大是,極大地節(jié)約了文件的掃描時(shí)間,提高了用戶的體驗(yàn)。
[0058]本發(fā)明還提供一種路由器,所述路由器可以實(shí)現(xiàn)本發(fā)明所述的快速獲取外接存儲(chǔ)設(shè)備的文件的方法,但本發(fā)明所述的快速獲取外接存儲(chǔ)設(shè)備的文件的方法的實(shí)現(xiàn)裝置包括但不限于本實(shí)施例列舉的路由器的結(jié)構(gòu),凡是根據(jù)本發(fā)明的原理所做的現(xiàn)有技術(shù)的結(jié)構(gòu)變形和替換,都包括在本發(fā)明的保護(hù)范圍內(nèi)。
[0059]參見圖3所示,所述路由器掛接有至少I個(gè)存儲(chǔ)設(shè)備;所述路由器的數(shù)據(jù)庫包括路由器掛接的所有存儲(chǔ)設(shè)備分別對(duì)應(yīng)的索引文件數(shù)據(jù)庫。所述路由器300包括:檢測(cè)模塊310,數(shù)據(jù)庫重建模塊320,數(shù)據(jù)庫更新模塊330,數(shù)據(jù)庫校正模塊340,記錄生成模塊350,數(shù)據(jù)庫360。
[0060]所述數(shù)據(jù)庫360用于存儲(chǔ)掛接的存儲(chǔ)設(shè)備對(duì)應(yīng)的索引文件數(shù)據(jù)庫。
[0061]所述檢測(cè)模塊310與所述數(shù)據(jù)庫360相連,檢測(cè)當(dāng)前掛接的存儲(chǔ)設(shè)備在數(shù)據(jù)庫中是否存在對(duì)應(yīng)的索引文件數(shù)據(jù)庫。
[0062]所述數(shù)