麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種安卓系統文件的恢復方法及裝置與流程

文檔序號:11154725閱讀:415來源:國知局
一種安卓系統文件的恢復方法及裝置與制造工藝

本發明涉及計算機技術領域,尤其涉及一種安卓系統文件恢復方法及裝置。



背景技術:

在安卓(Android)開發中,各種文件一般都存儲在對應應用程序的目錄下或者sdcard中,其中,這些文件包括一些臨時文件,例如圖片緩存、網絡緩存等,還包括一些重要文件,例如涉及應用程序的狀態、數據庫之類的文件,隨著目前Android中各類清理軟件的廣泛使用,而各個清理軟件實現的原理不盡相同,經常會出現存儲在應用程序目錄的一些重要文件被清理軟件當作垃圾文件而清除的現象。

現有技術中,當需要恢復被刪除的文件時,需要對Android進行root操作來進行處理,或者需要對被刪文件的整個磁盤進行處理恢復。

本申請發明人在實現本申請實施例技術方案的過程中,至少發現現有技術中存在如下技術問題:

現有技術中在對被刪除的文件進行恢復時,由于需要對Android進行root操作或者需要對被刪文件的整個磁盤進行處理恢復而存在操作復雜、不能有針對性地對文件進行恢復的問題。



技術實現要素:

本發明提供一種安卓系統文件的恢復方法及裝置,可以解決現有技術中文件恢復方法操作復雜、不能有針對性地對文件進行恢復的技術問題。

第一方面,本發明實施例提供了一種安卓系統文件的恢復方法,包括:當要恢復被刪除的目標文件時,創建臨時目錄;根據預存的所述目標文件的原始狀態信息中包含的文件讀取流和文件大小,將所述目標文件恢復至所述臨時目錄,其中,所述原始狀態信息還包括所述目標文件的原始文件路徑;將所述臨時目錄中的所述目標文件還原至所述原始文件路徑指向的位置。

可選的,所述將所述目標文件恢復至所述臨時目錄,包括:獲取所述目標文件的文件讀取流;獲取所述目標文件的文件大小;根據所述文件讀取流在所述臨時目錄中寫入所述目標文件的數據;根據所述文件大小,控制寫入所述目標文件的數據大小。

可選的,在恢復目標文件之前,還包括:檢測目標文件是否被刪除。

可選的,所述檢測目標文件是否被刪除,包括:獲取所述目標文件的當前文件路徑;獲取所述目標文件的原始文件路徑;若所述當前文件路徑與所述原始文件路徑不一致,則確定所述目標文件被刪除。

可選的,在所述獲取所述目標文件的原始文件路徑之前,還包括:根據預存存的文件識別碼確定所述目標文件的原始文件路徑。

另一方面,本發明實施例提供了一種安卓系統文件恢復的裝置,包括:創建模塊,用于要恢復被刪除的目標文件時,創建臨時目錄;恢復模塊,用于根據預存的所述目標文件的原始狀態信息中包含的文件讀取流和文件大小,將所述目標文件恢復至所述臨時目錄,其中,所述原始狀態信息還包括原始文件路徑;還原模塊,用于將所述臨時目錄中的所述目標文件還原至所述原始文件路徑指向的位置。

可選的,所述恢復模塊包括,第一獲取單元,用于獲取所述目標文件的文件讀取流;第二獲取單元,用于獲取所述目標文件的文件大小;寫入單元,用于根據所述文件讀取流在所述臨時目錄中寫入所述目標文件的數據;控制單元,用于根據所述文件大小,控制寫入所述目標文件的數據大小。

可選的,所述裝置還包括檢測模塊,所述檢測模塊用于檢測目標文件是否被刪除。

可選的,所述檢測模塊,包括:第三獲取單元,用于獲取目標文件的當前文件路徑;第四獲取單元,用于獲取目標文件的原始文件路徑;第一確定單元,用于當所述當前文件路徑與所述原始文件路徑不一致時,確定所述目標文件被刪除。

可選的,所述檢測模塊還包括:第二確定子單元,用于在獲取目標文件的原始文件路徑之前,根據預存的文件識別碼確定所述目標文件的原始文件路徑。

與現有技術相比,本發明實施例中提供的一個或多個技術方案,至少具有如下技術效果或優點:

本申請實施例提供的一種安卓系統文件的恢復方法及裝置,在Android系統中存儲了所有文件的原始狀態信息,當目標文件被刪除時,可以根據文件的原始狀態信息中的文件讀取流和文件大小,將其恢復至臨時目錄中,并根據原始文件路徑,將臨時目錄中的目標文件進行路徑還原,從而實現目標文件的恢復,而無需對系統進行root操作或將文件所在的整個磁盤進行恢復,解決了現有的文件恢復方法操作復雜,無法有針對性地對被刪文件進行恢復的問題,可以有效地、有針對性地對被刪除文件進行恢復,提高了文件恢復的效率。

附圖說明

為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。

圖1為本發明實施例中Android系統文件恢復方法的流程圖;

圖2為本發明實施例中Android系統文件恢復裝置的結構示意圖。

具體實施方式

本申請實施例通過提供一種安卓系統文件的恢復方法及裝置,可以解決現有技術中文件恢復方法操作復雜、不能有針對性地對文件進行恢復的技術問題,可以有效地、有針對性地對被刪除文件進行恢復,提高文件恢復的效率。

本申請實施例中的技術方案,總體思路如下:當要恢復被刪除的目標文件時,創建臨時目錄,并根據預存的所述目標文件的原始狀態信息中的文件讀取流和文件大小,將所述目標文件恢復至所述臨時目錄,并且所述原始狀態信息還包括所述目標文件的原始文件路徑;再將所述臨時目錄中的所述目標文件還原至所述原始文件路徑指向的位置。

上述文件恢復方法中,由于在Android系統中存儲了所有文件的原始狀態信息,原始狀態信息包括文件讀取流、文件大小和原始文件路徑,當目標文件被刪除時,可以根據目標文件的文件讀取流和文件大小將其恢復至臨時目錄中,并根據原始文件路徑將臨時目錄中的目標文件還原至原始文件路徑指向的位置,而無需對系統進行root操作或將刪除的文件所在的整個磁盤進行恢復,解決了現有技術中文件恢復方法操作復雜、不能有針對性地對文件進行恢復的技術問題,可以有效地、有針對性地對被刪除文件進行恢復,提高文件恢復的效率。

為了更好的理解上述技術方案,下面通過附圖以及具體實施例對本發明技術方案做詳細的說明,應當理解本發明實施例以及實施例中的具體特征是對本發明技術方案的詳細的說明,而不是對本發明技術方案的限定,在不沖突的情況下,本發明實施例以及實施例中的技術特征可以相互組合。

實施例一

本實施例提供一種Android系統文件恢復的方法,請參考圖1,所述方法包括:

步驟S101,當要恢復被刪除的目標文件時,創建臨時目錄;

步驟S102,根據預存的所述目標文件的原始狀態信息中包含的文件讀取流和文件大小,將所述目標文件恢復至所述臨時目錄,其中,所述原始狀態信息還包括所述目標文件的原始文件路徑;

步驟S103,將所述臨時目錄中的所述目標文件還原至所述原始文件路徑指向的位置;

舉例來說,上述方法可以應用于安卓系統的各種裝置中,比如智能手機、平板電腦、智能手環等。

具體來講,用戶在使用安卓系統時,為了提高系統的性能,常常會利用清理軟件對安卓系統中的文件進行清理,在清理過程中,一部分重要文件被當做垃圾文件刪除,本發明描述了一種android中文件被刪除后恢復的方法,當要恢復被刪除的目標文件時,創建臨時目錄;,并根據預存的所述目標文件的原始狀態信息中的文件讀取流和文件大小,將所述目標文件恢復至所述臨時目錄,然后將所述臨時目錄中的所述目標文件還原至所述原始文件路徑指向的位置,這樣不需要對android設備進行root操作,也不要單獨通過對磁盤進行處理恢復,只需要在應用層處理就能將被刪除的文件進行恢復,解決了現有技術中文件恢復方法操作復雜、不能有針對性地對文件進行恢復的技術問題,可以有效地、有針對性地對被刪除文件進行恢復,提高文件恢復的效率。

接下來,結合圖1對本申請提供的Android系統文件恢復的方法進行詳細介紹:

首先,執行步驟S101,當要恢復被刪除的目標文件時,創建臨時目錄。

具體而言,當要恢復被刪除的目標文件時,首先創建一個臨時目錄,該臨時目錄為一個空目錄,可以用來存儲被刪除然后進行恢復的的目標文件。

然后,執行步驟S102:

步驟S102,根據預存的所述目標文件的原始狀態信息中包含的文件讀取流和文件大小,將所述目標文件恢復至所述臨時目錄,其中,所述原始狀態信息還包括所述目標文件的原始文件路徑;

具體而言,在安卓系統中存儲所有文件的原始狀態信息,這些狀態信息包括文件識別碼、文件讀取流、文件大小、原始文件路徑等信息,其中,文件的識別碼是指能夠唯一識別該文件的特征,例如可以是文件名和md5校驗碼,文件讀取流即文件的讀取方式,文件的大小即文件的存儲容量,原始文件路徑可以作為判斷目標文件是否被刪除的依據,以及將目標文件的路徑進行還原等操作。

在具體實施過程中,在安卓系統中,可以對系統中存儲的文件進行監聽,每個待監聽的文件都有其FileObserver對象,可以將文件的原始狀態信息:文件識別碼、文件讀取流、文件大小和原始文件路徑當做屬性置于FileObserver類的實現類中,其中,文件識別碼包括文件名和md5校驗碼,md5校驗碼的獲取可以使用系統提供的MessageDigest工具類來實現,并通過創建FileInputStream對象來保存原始文件的文件讀取流,上述FileInputStream對象的參數就是該文件的原始文件路徑,然后通過FileInputStream對象的available方法來獲取可以方便后續找到被刪文件的硬盤位置,這樣一個帶有待監聽文件的各種屬性的FileObserver對象創建完成了,即完成了所有文件的原始狀態信息的存儲。接著可以通過一個哈希表存儲上述對象,需要說明的是,哈希表是根據鍵(Key)而直接訪問在內存存儲位置的數據結構。也就是說,它通過計算一個關于鍵值的函數,將所需查詢的數據映射到表中一個位置來訪問記錄,這樣可以加快查找速度,這個映射函數則稱為散列函數,用于存放記錄的數組稱做散列表。通過哈希表存儲有利于后續恢復時查找文件識別碼、文件讀取流、文件大小等一系列信息,在具體的應用過程中,哈希表可以通過HashMap類的put方法創建。

除了上述通過FileObserver對象的屬性進行文件原始狀態信息的存儲之外,還可以通過建立一關聯目錄或者其他方式來存儲文件的原始狀態信息,本發明對此不做具體限定。

需要說明的是,各種系統采用的文件系統格式不盡相同,但是各種系統的文件系統有一個共同點,就是其單獨在硬盤上開辟一塊區域作為存儲整個磁盤中文件的路徑等記錄,用來管理文件,其最基本的功能就是記錄文件的地址,以供操作系統讀取,安卓系統的文件系統在刪除文件時,都是刪除其文件的路徑索引,而并沒有對該文件的存儲內容進行改變,即在刪除文件時通知操作系統,該位置可以寫入新的數據了。

具體地,可以通過以下步驟來對刪除的目標文件進行恢復:獲取所述目標文件的文件讀取流;獲取所述目標文件的文件大小;在具體實施過程中,獲取所述文件讀取流和獲取所述文件大小兩個步驟不分先后順序,可以先獲取所述文件讀取流,也可以先獲取所述文件大小,還可以同時獲取所述文件讀取流和所述文件大小。由于文件讀取流和文件大小在文件創建時被保存到文件的原始狀態信息中,可以在原始狀態信息中,獲取目標文件的文件讀取流和文件大小,然后根據所述文件讀取流在所述臨時目錄中寫入所述目標文件的數據;其中文件讀取流中包含了文件的索引記錄,當目標文件被刪除時,可以通過文件讀取流對目標文件進行讀取,并寫入到臨時目錄中,即對目標文件進行恢復,然后根據所述文件大小控制寫入所述目標文件的數據大小,由于要保持臨時目錄中的數據與原始文件的一致性,需要通過原始文件的文件大小對寫入的數據進行控制。

可選地,為了方便將被刪除的目標文件進行管理與操作,在創建臨時目錄后,可以在臨時目錄中創建一個以目標文件的文件名為名稱的空文件,以便后續的文件恢復以及各個文件的一一對應。

在具體實施過程中,首先讀取FileObserver對象的屬性,并創建一個臨時目錄,用來存放被刪除然后恢復的文件,這里將臨時目錄用tmp來指代,首先以被刪除的文件的文件名在tmp下創建一個空文件,然后循環調用流對象的read方法,同時循環寫入到創建好的空文件中,直到寫入的數據的大小達到原始文件大小為止,具體為,首先創建一個以被刪除的文件的文件名為名稱的空文件對象,該空文件對象位于tmp目錄下,對象名為tmpfile,然后創建其寫入流fs(就是創建tmpfile文件的FileOutputStream對象,這里將該對象命名為fs),然后定義一個臨時存儲流中讀取數據的對象buffer,buffer類型是byte數組,然后循環讀取fileinput,也就是調用其read方法,并將buffer作為參數,當每一次buffer被賦值時調用fs的write方法進行寫入,這樣一個完整的文件就在tmp目錄下恢復了。

然后,執行步驟S103,將所述臨時目錄中的所述目標文件還原至所述原始文件路徑指向的位置。

需要說明的是,將被刪除的文件恢復至臨時目錄之后,其只是將原刪除的文件的內容恢復,還需要進一步將文件的路徑還原。

在具體實施過程中,首先讀取臨時目錄tmp下的文件,先對tmp目錄進行遍歷,得到該目錄下每個文件的文件名,然后通過文件名創建其File對象,接著計算出tmp目錄下每個文件的md5效驗碼,需要說明的是,md5校驗和(checksum)是通過對接收的傳輸數據執行散列運算來檢查數據的正確性。計算出的散列值拿來和隨數據傳輸的散列值比較。如果兩個值相同,說明傳輸的數據完整無誤、沒有被竄改過,在本實施例中,可以通過原始文件md5校驗碼與恢復的文件的md5校驗碼的比較,來檢驗恢復的文件是否與原文件是一致的,即用來檢驗文件恢復的可靠性和準確性。并通過文件名在之前創建好的哈希表中進行查找,若查找到了該文件的FileObserver對象,再通過其之前保存的文件md5值與當前的md5值進行效驗比較,如果相同則表明是同一個文件,則直接調用File對象的renameTo方法將文件移動到原本位置,這樣就完成看了文件路徑的還原,依次執行直到整個tmp下文件都被恢復到期原本位置。

可選地,在恢復目標文件之前,還包括:檢測目標文件是否被刪除,具體來說,檢測目標文件是否被刪除包括如下步驟:獲取所述目標文件的當前文件路徑;獲取所述目標文件的原始文件路徑;若所述當前文件路徑和所述原始文件路徑不一致,則確定所述目標文件是否被刪除。需要說明的是,在具體實施過程中,而在獲取目標文件的原始文件路徑時,還需要對目標文件進行確定,本實施例中可以通過文件識別碼進行確定,文件的識別碼是指能夠唯一識別該文件的特征,例如可以是文件名,其中文件名可以用來確定目標文件,并作為創建一個臨時目錄下空文件的基礎,本申請的實施例中,文件識別碼還包括md5校驗碼,該md5校驗碼則可以用來檢驗恢復的文件是否與原文件一致,即用來檢驗文件恢復的可靠性和準確性。

在具體實施過程中,在安卓系統中提供了FileObserver類用于監聽指定文件路徑的變化,從而監聽該文件的刪除操作,FileObserver對象創建時接受一個路徑作為參數,并通過其startWatching方法來監聽該路徑指定文件或者目錄的變化,這里的路徑可以通過外部進行傳入,可以是目錄或者文件,如果是目錄這里需要遞歸創建FileObserver對象,這樣可以通過FileObserver對象就能達到監聽文件路徑的變化的目的,為了進一步對文件進行恢復以及方便管理,在本實施例中將對每個需要監聽的文件都創建一個FileObserver對象,當FileObserver對象調用startWatching方法開啟文件狀體監聽之后,重寫其onEvent方法用來監聽想要監聽的事件,這里將監聽FileObserver.DELETE事件FileObserver.DELETE是FileObserver內部定義好的刪除文件消息的常量,當在onEvent方法中收到了FileObserver.DELETE消息表明文件被刪除。

本發明實施中通過文件名和md5校驗碼來對文件進行識別,在具體實施過程中,可以通過其他特征來對文件進行識別,本發明實施例中可以通過目標文件的路徑的變化來檢測目標文件是否被刪除,在具體實施過程中還可以通過目標文件的文件內容的改變或其他方式來檢測,對此本發明對此不作限制。

實施例二

本實施例提供了一種安卓系統文件恢復裝置,請參考圖2,所述裝置包括:

創建模塊201,用于要恢復被刪除的目標文件時,創建臨時目錄;

恢復模塊202,用于根據預存的所述目標文件的原始狀態信息中包含的文件讀取流和文件大小,將所述目標文件恢復至所述臨時目錄,其中,所述原始狀態信息包括所述目標文件的文件讀取流、文件大小和原始文件路徑;

還原模塊203,用于將所述臨時目錄中的所述目標文件還原至所述原始文件路徑指向的位置。

在本申請實施例中,所述恢復模塊202,包括:

第一獲取單元,用于獲取所述目標文件的文件讀取流;

第一獲取單元,用于獲取所述目標文件的文件大小;

寫入單元,用于根據所述文件讀取流在所述臨時目錄中寫入所述目標文件的數據;

控制單元,用于根據所述文件大小,控制寫入所述目標文件的數據大小。

在本申請實施例中,所述裝置還包括檢測模塊,所述檢測模塊用于檢測目標文件是否被刪除。

在本申請實施例中,所述檢測模塊包括:

第三獲取單元,用于獲取目標文件的當前文件路徑;

第四獲取單元,用于獲取目標文件的原始文件路徑;

確定單元,用于當所述當前文件路徑和所述原始文件路徑不一致時,確定所述目標文件被刪除。

在本申請實施例中,所述檢測模塊還包括:

第二確定子單元,用于在獲取目標文件的原始文件路徑之前,根據預存的文件識別碼確定所述目標文件的原始文件路徑。

前述實施例中的安卓系統文件恢復方法的各種變化方式和具體實例同樣適用于本實施例的安卓系統文件恢復裝置,通過前述對安卓系統文件恢復方法的詳細描述,本領域技術人員可以清楚的知道本實施例中的文件恢復裝置,所以為了說明書的簡潔,在此不再詳述。

與現有技術相比,本發明實施例中提供的一個或多個技術方案,至少具有如下技術效果或優點:

本申請實施例提供的一種安卓系統文件的恢復方法及裝置,在Android系統中存儲了所有文件的原始狀態信息,當目標文件被刪除時,可以根據文件的原始狀態信息中的文件讀取流和文件大小,將其恢復至臨時目錄中,并根據原始文件路徑,將臨時目錄中的目標文件進行路徑還原,從而實現目標文件的恢復,而無需對系統進行root操作或將文件所在的整個磁盤進行恢復,解決了現有的文件恢復方法操作復雜,無法有針對性地對被刪文件進行恢復的問題,可以有效地、有針對性地對被刪除文件進行恢復,提高了文件恢復的效率。

本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或計算機程序產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。

本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。

這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。

這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

盡管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本發明范圍的所有變更和修改。

顯然,本領域的技術人員可以對本發明實施例進行各種改動和變型而不脫離本發明實施例的精神和范圍。這樣,倘若本發明實施例的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 奉贤区| 平舆县| 深圳市| 黔江区| 鄂温| 永仁县| 肥西县| 苍梧县| 古田县| 高清| 信阳市| 黄石市| 四平市| 新化县| 枣强县| 桐城市| 海南省| 板桥市| 常宁市| 浪卡子县| 盐城市| 武鸣县| 喀什市| 普安县| 宣威市| 汉中市| 邢台县| 页游| 扬中市| 安徽省| 通州市| 获嘉县| 金堂县| 湘潭县| 临沭县| 屏南县| 双城市| 香河县| 木兰县| 玛纳斯县| 平山县|