專利名稱:應(yīng)用程序調(diào)用文件的方法和裝置及客戶端設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,具體涉及一種應(yīng)用程序調(diào)用文件的方法和裝置及客戶端設(shè)備。
背景技術(shù):
應(yīng)用程序是指為了完成某項或某幾項特定任務(wù)而被開發(fā)運行于操作系統(tǒng)之上的計算機程序。應(yīng)用程序通過人機交互,調(diào)用操作系統(tǒng)中的各種文件,經(jīng)過復(fù)雜的邏輯處理與運算,輸出顯示結(jié)果,以實現(xiàn)其強大的功能。但是,當應(yīng)用程序在運行過程中,如果發(fā)生斷電現(xiàn)象,系統(tǒng)需要重新啟動,而斷電后應(yīng)用程序運行時所調(diào)用的文件會產(chǎn)生錯誤,因此,系統(tǒng)重啟后如果重新運行應(yīng)用程序,該 應(yīng)用程序再次處理這些產(chǎn)生錯誤的文件時,將無法正常讀寫,從而導(dǎo)致應(yīng)用程序崩潰。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的應(yīng)用程序調(diào)用文件的方法和裝置及客戶端設(shè)備。依據(jù)本發(fā)明的一個方面,提供了一種應(yīng)用程序調(diào)用文件的方法,包括讀取系統(tǒng)事件日志;解析所述系統(tǒng)事件日志,獲取其中的文件錯誤事件日志;獲取所述文件錯誤事件日志中的錯誤文件的文件路徑;在所述錯誤文件的文件名后面增加一個文件擴展名;當應(yīng)用程序在調(diào)用所述錯誤文件時,建立一個與所述重命名前的錯誤文件具有相同文件名的新文件,并調(diào)用所述新文件。本發(fā)明實施例中,文件擴展名為隨機數(shù)。本發(fā)明實施例中,解析所述系統(tǒng)事件日志,獲取其中的文件錯誤事件日志,包括獲取所述系統(tǒng)事件日志中特定的事件ID對應(yīng)的所有系統(tǒng)事件日志,所述特定的事件ID為包含文件錯誤事件日志的一類系統(tǒng)事件日志對應(yīng)的事件ID ;獲取所述特定的事件ID對應(yīng)的所有系統(tǒng)事件日志的事件描述;查找所述事件描述為文件錯誤描述的系統(tǒng)事件日志,將所查找到的系統(tǒng)事件日志確定為文件錯誤事件日志。本發(fā)明實施例中,在獲取所述文件錯誤事件日志中的錯誤文件的文件路徑之前,還包括獲取所述文件錯誤事件日志的記錄時間;檢測所述文件錯誤事件日志的記錄時間是否滿足預(yù)設(shè)條件;若滿足,則執(zhí)行獲取所述文件錯誤事件日志中的錯誤文件的文件路徑的步驟;否則,忽略所述文件錯誤事件日志。本發(fā)明實施例中,預(yù)設(shè)條件為所述文件錯誤事件日志的記錄時間晚于本次開機時間。本發(fā)明實施例中,檢測所述文件錯誤事件日志的記錄時間是否滿足預(yù)設(shè)條件,包括獲取本次開機事件的事件ID ;查找與所述本次開機事件的事件ID相匹配的記錄時間,將所述相匹配的記錄時間作為本次開機時間;判斷所述文件錯誤事件日志的記錄時間是否晚于所述本次開機時間;若是,則確定所述文件錯誤事件日志的記錄時間滿足預(yù)設(shè)條件。本發(fā)明實施例中,通過在文件掃描過程中調(diào)用動態(tài)鏈接庫中的應(yīng)用程序編程接口API讀取所述系統(tǒng)事件日志。本發(fā)明實施例中,錯誤文件為磁盤錯誤文件。根據(jù)本發(fā)明的另一方面,提供了一種應(yīng)用程序調(diào)用文件的裝置,包括讀取模塊,用于讀取系統(tǒng)事件日志;解析模塊,用于解析所述系統(tǒng)事件日志,獲取其中的文件錯誤事件日志;·
文件路徑獲取模塊,用于獲取所述文件錯誤事件日志中的錯誤文件的文件路徑;重命名模塊,用于對所述文件路徑對應(yīng)的錯誤文件進行重命名;當應(yīng)用程序通過在調(diào)用所述錯誤文件時,建立一個與所述重命名前的錯誤文件具有相同文件名的新文件,并調(diào)用所述新文件;其中,所屬重命名模塊包括增加擴展名單元,用于在所述錯誤文件的文件名后面增加一個文件擴展名。本發(fā)明實施例中,文件擴展名為隨機數(shù)。本發(fā)明實施例中,解析模塊包括特定系統(tǒng)事件日志獲取單元,用于獲取所述系統(tǒng)事件日志中特定的事件ID對應(yīng)的所有系統(tǒng)事件日志,所述特定的事件ID為包含文件錯誤事件日志的一類系統(tǒng)事件日志對應(yīng)的事件ID ;事件描述獲取單元,用于獲取所述特定的事件ID對應(yīng)的所有系統(tǒng)事件日志的事件描述;文件錯誤事件日志查找單元,用于查找所述事件描述為文件錯誤描述的系統(tǒng)事件日志,將所查找到的系統(tǒng)事件日志確定為文件錯誤事件日志。本發(fā)明實施例中,錯誤文件處理裝置還包括記錄時間獲取模塊,用于在獲取所述文件錯誤事件日志中的錯誤文件的文件路徑之前,獲取所述文件錯誤事件日志的記錄時間;檢測模塊,用于檢測所述文件錯誤事件日志的記錄時間是否滿足預(yù)設(shè)條件;所述文件路徑獲取模塊當檢測模塊的檢測結(jié)果為是時,獲取所述文件錯誤事件日志中的錯誤文件的文件路徑;忽略模塊,用于當檢測模塊的檢測結(jié)果為否時,忽略所述文件錯誤事件日志。本發(fā)明實施例中,預(yù)設(shè)條件為所述文件錯誤事件日志的記錄時間晚于本次開機時間。本發(fā)明實施例中,檢測模塊包括
事件ID獲取單元,用于獲取本次開機事件的事件ID ;開機時間查找單元,用于查找與所述本次開機事件的事件ID相匹配的記錄時間,將所述相匹配的記錄時間作為本次開機時間;判斷單元,用于判斷所述文件錯誤事件日志的記錄時間是否晚于所述本次開機時間;確定單元,用于當判斷單元的判斷結(jié)果為是時,確定所述文件錯誤事件日志的記錄時間滿足預(yù)設(shè)條件。本發(fā)明實施例中,所述讀取模塊通過在文件掃描過程中調(diào)用動態(tài)鏈接庫中的應(yīng)用程序編程接口 API讀取所述系統(tǒng)事件日志。本發(fā)明實施例中,錯誤文件為磁盤錯誤文件。 根據(jù)本發(fā)明的另一方面,提供了一種客戶端設(shè)備,包括如上所述的應(yīng)用程序調(diào)用文件的裝置。根據(jù)本發(fā)明的應(yīng)用程序調(diào)用文件的方法和裝置及客戶端設(shè)備可以在文件掃描過程中讀取系統(tǒng)事件日志,然后解析所述系統(tǒng)事件日志,獲取其中的文件錯誤事件日志,并獲取所述文件錯誤事件日志中的錯誤文件的文件路徑,最后對所述文件路徑對應(yīng)的錯誤文件進行重命名。由于對錯誤文件進行了重命名,因此當應(yīng)用程序在調(diào)用所述錯誤文件時,不能找到原來的文件,此時應(yīng)用程序?qū)⒔⒁粋€與重命名前的錯誤文件具有相同文件名的新文件,并成功調(diào)用所述可以正常讀寫的新文件。由此解決了由于突然斷電后應(yīng)用程序調(diào)用產(chǎn)生錯誤的文件而導(dǎo)致應(yīng)用程序崩潰的問題,同時也解決了由于應(yīng)用程序崩潰而彈出錯誤提示框,從而誤導(dǎo)用戶誤認為電腦中病毒的問題,取得了計算機突然斷電并重啟之后,應(yīng)用程序仍然可以正常運行的有益效果。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式
。
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖I示出了根據(jù)本發(fā)明一個實施例的一種應(yīng)用程序調(diào)用文件的方法的流程圖;圖2示出了根據(jù)本發(fā)明一個實施例的一種應(yīng)用程序調(diào)用文件的方法的流程圖;以及圖3示出了根據(jù)本發(fā)明實施例所述的描述磁盤錯誤文件的示意圖;圖4示出了根據(jù)本發(fā)明一個實施例的一種應(yīng)用程序調(diào)用文件的裝置的結(jié)構(gòu)框圖。
具體實施例方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。本發(fā)明可以應(yīng)用于計算機系統(tǒng)/服務(wù)器,其可與眾多其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置一起操作。適于與計算機系統(tǒng)/服務(wù)器一起使用的眾所周知的計算系統(tǒng)、環(huán)境和/或配置的例子包括但不限于個人計算機系統(tǒng)、服務(wù)器計算機系統(tǒng)、瘦客戶機、厚客戶機、手持或膝上設(shè)備、基于微處理器的系統(tǒng)、機頂盒、可編程消費電子產(chǎn)品、網(wǎng)絡(luò)個人電腦、小型計算機系統(tǒng)、大型計算機系統(tǒng)和包括上述任何系統(tǒng)的分布式云計算技術(shù)環(huán)境,等等。計算機系統(tǒng)/服務(wù)器可以在由計算機系統(tǒng)執(zhí)行的計算機系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一般語境下描述。通常,程序模塊可以包括例程、程序、目標程序、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務(wù)或者實現(xiàn)特定的抽象數(shù)據(jù)類型。計算機系統(tǒng)/服務(wù)器可以在分布式云計算環(huán)境中實施,分布式云計算環(huán)境中,任務(wù)是由通過通信網(wǎng)絡(luò)鏈接的遠程處理設(shè)備執(zhí)行的。在分布式云計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備的本地或遠程計算系統(tǒng)存儲介質(zhì)上。參照圖1,示出了根據(jù)本發(fā)明一個實施例的應(yīng)用程序調(diào)用文件的方法的流程圖。 當應(yīng)用程序在運行過程中,如果計算機突然斷電,系統(tǒng)需要重新啟動,而斷電后應(yīng)用程序運行時所調(diào)用的文件會產(chǎn)生錯誤,因此,系統(tǒng)重啟后如果重新運行應(yīng)用程序,該應(yīng)用程序再次處理這些產(chǎn)生錯誤的文件時,將無法正常讀寫,從而導(dǎo)致應(yīng)用程序崩潰。本發(fā)明實施例針對上述情況,首先找出這些產(chǎn)生錯誤的文件,然后對相應(yīng)的文件進行處理,從而使得應(yīng)用程序可以成功調(diào)用這些文件。在本實施例中,可以通過殺毒軟件的掃描過程獲取到這些產(chǎn)生錯誤的文件?,F(xiàn)有殺毒軟件一般包括三種掃描模式全盤掃描模式,快速掃描模式和指定位置掃描模式。其中,全盤掃描模式是針對用戶設(shè)備中的每個程序和文件進行掃描;快速掃描模式是針對系統(tǒng)內(nèi)一些關(guān)鍵的軟件和重要的目錄進行掃描(例如內(nèi)存、IE、插件、注冊表等,重要的目錄如c:\windows\system32等);指定位置掃描模式是向用戶顯示出系統(tǒng)文件的樹形目錄,包括一層一層的文檔目錄,以供用戶逐層進行選擇。由于用戶在管理電腦里的文件時,有些用戶可能并不完全熟悉操作系統(tǒng)中的各個文件,也不清楚某些文件的用途,因此,本申請實施例設(shè)定在快速掃描或者全盤掃描過程中增加一項錯誤文件掃描功能,從Windows的系統(tǒng)事件日志中收集錯誤文件,并獲取所述錯誤文件的文件路徑顯示給用戶,引導(dǎo)用戶重命名這些文件,從而處理所述錯誤文件,使以后調(diào)用這些文件的應(yīng)用程序能正常運行。當然,本發(fā)明實施例中獲取錯誤文件的過程并不限定于上述掃描方式,本領(lǐng)域技術(shù)人員可以根據(jù)實際情況進行相應(yīng)的處理,例如通過獨立的錯誤文件掃描軟件獲取,等等。具體的,如圖I所示,所述方法包括步驟S101,讀取系統(tǒng)事件日志;步驟S102,解析所述系統(tǒng)事件日志,獲取其中的文件錯誤事件日志;步驟S103,獲取所述文件錯誤事件日志中的錯誤文件的文件路徑;首先,在掃描過程中讀取出所有的系統(tǒng)事件日志,然后對所述系統(tǒng)事件日志進行解析,從而獲取所述系統(tǒng)事件日志中的文件錯誤事件日志,其中,文件錯誤事件日志中的文件即為產(chǎn)生錯誤的文件,最后獲取到這些錯誤文件的文件路徑。對于具體的過程,將在下面的實施例中詳細介紹。
步驟S104,對所述文件路徑對應(yīng)的錯誤文件進行重命名;當經(jīng)過上述步驟SlOl-步驟S103獲取到錯誤文件的文件路徑之后,需要將所述文件路徑顯示給用戶,用戶得到這些文件路徑信息,就可以知道這些錯誤文件在計算機中存儲的位置,也就可以找到這些錯誤文件。用戶找到這些錯誤文件之后,需要協(xié)助系統(tǒng)對這些錯誤文件進行重命名。具體的,用戶可以通過點擊“重命名”向系統(tǒng)發(fā)出命令,觸發(fā)系統(tǒng)的重命名功能,當系統(tǒng)接收到用戶的重命名命令后,會自動為對應(yīng)的文件建立一個新的文件名。步驟S105,當應(yīng)用程序在調(diào)用所述錯誤文件時,建立一個與所述重命名前的錯誤文件具有相同文件名的新文件,并調(diào)用所述新文件。由于這些錯誤文件的文件名已經(jīng)發(fā)生了改變,因此當系統(tǒng)重新啟動后,應(yīng)用程序在調(diào)用這些錯誤文件時,不能找到原來的文件,此時應(yīng)用程序?qū)⒆詣有陆ㄒ粋€與所述重命 名前的錯誤文件具有相同文件名的新文件,并調(diào)用所述新文件,由于新文件中沒有產(chǎn)生錯誤,因此應(yīng)用程序可以成功調(diào)用這些新文件。但是,需要說明的是,新創(chuàng)建的文件是否還能恢復(fù)到產(chǎn)生磁盤錯誤之前的正確文件,是由應(yīng)用程序去恢復(fù)的,可能新文件能夠恢復(fù)到之前正常的狀態(tài)(即新文件與原來的文件相同),也有可能不能恢復(fù)為原來的文件。而殺毒過程并不能將文件恢復(fù)正常,殺毒要解決的問題是在檢測出磁盤錯誤文件之后,對該錯誤文件進行處理,使得應(yīng)用程序訪問的文件不存在錯誤,以避免應(yīng)用程序訪問磁盤錯誤文件而導(dǎo)致應(yīng)用程序出現(xiàn)異常。對于計算機中的應(yīng)用程序來說,其具有上述功能,即當發(fā)現(xiàn)所調(diào)用的文件不存在的時候,會新建一個相同文件名的新文件。因此,本發(fā)明實施例通過對所述錯誤文件重命名,即可以避免由于調(diào)用產(chǎn)生錯誤的文件而導(dǎo)致的應(yīng)用程序崩潰的問題。本發(fā)明實施例可以在文件掃描過程中讀取系統(tǒng)事件日志,然后解析所述系統(tǒng)事件日志,獲取其中的文件錯誤事件日志,并獲取所述文件錯誤事件日志中的錯誤文件的文件路徑,最后對所述文件路徑對應(yīng)的錯誤文件進行重命名。由于對錯誤文件進行了重命名,因此當應(yīng)用程序在調(diào)用所述錯誤文件時,不能找到原來的文件,此時應(yīng)用程序?qū)⒔⒁粋€與重命名前的錯誤文件具有相同文件名的新文件,并成功調(diào)用所述新文件。由此解決了由于突然斷電后應(yīng)用程序調(diào)用產(chǎn)生錯誤的文件而導(dǎo)致應(yīng)用程序崩潰的問題,同時也解決了由于應(yīng)用程序崩潰而彈出錯誤提示框,從而誤導(dǎo)用戶誤認為電腦中病毒的問題,使得計算機突然斷電并重啟之后,應(yīng)用程序仍然可以正常運行。參照圖2,示出了根據(jù)本發(fā)明一個實施例的一種應(yīng)用程序調(diào)用文件的方法的流程圖,步驟S201,讀取系統(tǒng)事件日志;在本發(fā)明實施例中,為了對由于突然斷電而產(chǎn)生的錯誤文件進行處理,首先,在系統(tǒng)重新啟動之后,利用殺毒軟件進行的掃描的過程中,讀取系統(tǒng)事件日志。本實施例可以通過在文件掃描過程中調(diào)用動態(tài)鏈接庫(Dynamic Link Library,DLL)中的應(yīng)用程序編程接口(Application Programming Interface, API)讀取所述系統(tǒng)事件日志。對于具體的讀取過程,本領(lǐng)域技術(shù)人員根據(jù)實際經(jīng)驗進行處理即可,本發(fā)明在此不再詳細論述。步驟S202,解析所述系統(tǒng)事件日志,獲取其中的文件錯誤事件日志;
讀取到上述系統(tǒng)事件日志之后,進一步對所述系統(tǒng)事件日志進行解析,以獲取各個日志的詳細內(nèi)容,從而進一步獲取其中的文件錯誤事件日志。在本發(fā)明實施例中,對所述系統(tǒng)事件日志進行了分類,其中,當事件ID為某一特定的事件ID(26)的時候,該事件ID所對應(yīng)的系統(tǒng)事件日志為包含文件錯誤事件日志的一類系統(tǒng)事件日志。因此,需要首先獲取該特定的事件ID對應(yīng)的系統(tǒng)事件日志,然后再從這些系統(tǒng)事件日志中找出文件錯誤事件日志。該步驟S202具體包括以下子步驟子步驟1,獲取所述系統(tǒng)事件日志中特定的事件ID對應(yīng)的所有系統(tǒng)事件日志,所述特定的事件ID為包含文件錯誤事件日志的一類系統(tǒng)事件日志對應(yīng)的事件ID ;子步驟2,獲取所述特定的事件ID對應(yīng)的所有系統(tǒng)事件日志的事件描述;子步驟3,查找所述事件描述為文件錯誤描述的系統(tǒng)事件日志,將所查找到的系統(tǒng)·事件日志確定為文件錯誤事件日志。如圖3所示,為一種描述磁盤錯誤文件的示意圖,從圖中可以看出,通過對系統(tǒng)事件日志進行解析,其中的一個系統(tǒng)事件日志的來源是“Application Popup”,事件ID是“26”,其事件描述文字以“損壞文件文件或目錄”開始,以“已損壞且無法讀取,請運行chkdsk工具”結(jié)束,該事件描述即為文件錯誤描述,因此,將所查找到的該系統(tǒng)事件日志確定為文件錯誤事件日志。當然,除了上述的日志來源、事件ID、事件描述信息,還可以獲取到該文件錯誤事件日志的其他信息,如級別、用戶、關(guān)鍵字、任務(wù)類別等,本發(fā)明對此不再詳細論述。步驟S203,獲取所述文件錯誤事件日志的記錄時間;步驟S204,檢測所述文件錯誤事件日志的記錄時間是否滿足預(yù)設(shè)條件;若滿足,則執(zhí)行步驟S205 ;否則,忽略所述文件錯誤事件日志。優(yōu)選的,在本實施例中,只處理本次開機之后產(chǎn)生的錯誤文件,對于本次開機之前的錯誤文件將直接忽略,不對其進行處理。因此,所述預(yù)設(shè)條件為所述文件錯誤事件日志的記錄時間晚于本次開機時間。首先,在確定系統(tǒng)事件日志中的文件錯誤事件日志之后,獲取該文件錯誤事件日志的記錄時間。其中,所述記錄時間可以與所述文件錯誤事件日志的事件描述、來源、事件ID等信息一同獲取。獲取到文件錯誤事件日志的記錄時間之后,要檢測所述文件錯誤事件日志的記錄時間是否滿足預(yù)設(shè)條件,具體包括以下子步驟子步驟i,獲取本次開機事件的事件ID ;子步驟ii,查找與所述本次開機事件的事件ID相匹配的記錄時間,將所述相匹配的記錄時間作為本次開機時間;例如,本次開機事件的事件ID為6005,在讀取系統(tǒng)事件日志時,獲取其中的事件ID為6005對應(yīng)的事件日志的記錄時間,該記錄時間即為本次開機時間。子步驟iii,判斷所述文件錯誤事件日志的記錄時間是否晚于所述本次開機時間;若是,則確定所述文件錯誤事件日志的記錄時間滿足預(yù)設(shè)條件。例如,圖3中所獲取到的文件錯誤事件日志的記錄時間為2012/8/2818:27:38,并且通過本次開機事件獲取到本次開機時間為2012/8/2818:20:38,因此,圖3中的文件錯誤事件日志的記錄時間滿足預(yù)設(shè)條件,需要對該文件錯誤事件日志中的錯誤文件進行處理。步驟S205,獲取所述文件錯誤事件日志中的錯誤文件的文件路徑;如果在步驟S204中檢測出所述文件錯誤事件日志的記錄時間滿足預(yù)設(shè)條件,則獲取該文件錯誤事件日志中的錯誤文件的文件路徑,并將所述文件路徑顯示給用戶,用戶通過文件路徑即可找到相應(yīng)的錯誤文件。例如,圖3中所示的文件錯誤事件日志中的錯誤文件的文件路徑被包含在該日志的事件描述文字“損壞文件文件或目錄”和“已損壞且無法讀取”之間,即為“Documentsand Settings'jianghonngxia\Local Settings\Temporary Internet Files\Content.IE5\LZLFL3ZV\101010100[1]. xml”,用戶通過文件路徑即可找到相應(yīng)的錯誤文件“101010100[1]. xml”。步驟S206,對所述文件路徑對應(yīng)的錯誤文件進行重命名; 在找到上述錯誤文件“101010100[l].xml”之后,用戶通過點擊“重命名”可以觸發(fā)系統(tǒng)自動對該文件執(zhí)行重命名過程。本實施例中,可以通過系統(tǒng)的API進行文件的重命名,對于具體的過程,本發(fā)明實施例在此不再詳細介紹。具體的,所述對所述文件路徑對應(yīng)的錯誤文件進行重命名,包括在所述錯誤文件的文件名后面增加一個文件擴展名,其中,所述文件擴展名為隨機數(shù)。例如,經(jīng)過重命名后,系統(tǒng)將原來的錯誤文件“101010100[I], xml”的文件名修改為“ 101010100 [I]. xml. 123”,即在原有的文件名后面增加了一組隨機數(shù)“ 123”。當然,本發(fā)明實施例中的重命名方式并不限定上述增加隨機數(shù)的方法,任何其他的重命名方式都是可行的,只要保證新文件的文件名與產(chǎn)生錯誤的文件的文件名不相同即可。例如,可以通過在原文件名的基礎(chǔ)上增加擴展名的方式進行重命名,增加擴展名的重命名方式簡單且易于鑒別,常見的文件擴展名包括exe”、“. dll”、“. com”、“. sys”、
vbs”等。對于上述錯誤文件“101010100[1]. xml”,可以在其文件名后面增加擴展名exe”,即將文件名修改為“101010100 [I] .xml. exe,,。當然,還可以增加其他擴展名,本實施例對此并不加以限制。步驟S207,當應(yīng)用程序在調(diào)用所述錯誤文件時,建立一個與所述重命名前的錯誤文件具有相同文件名的新文件,并調(diào)用所述新文件。當應(yīng)用程序在調(diào)用所述錯誤文件時,由于系統(tǒng)將原有的錯誤文件“101010100[1].xml”的文件名修改為“101010100[l].xml. 123”,因此,應(yīng)用程序?qū)⒉荒苷业皆械腻e誤文件“101010100[l].xml”。此時,應(yīng)用程序?qū)⒔⒁粋€與所述重命名前的錯誤文件具有相同文件名的新文件,即重新建立一個文件名為“ 101010100 [I]. xml ”的新文件,這個新文件是可以被正常讀寫的,因此,應(yīng)用程序可以成功調(diào)用所述新文件。在本實施例中,所述錯誤文件可以為磁盤錯誤文件,當然也可以為系統(tǒng)中的其他文件,本發(fā)明對此并不加以限制。本實施例相對于上述實施例的改進之處在于,規(guī)定了處理錯誤文件的條件,只對本次開機之后產(chǎn)生的錯誤文件進行處理,對于本次開機之前的錯誤文件可能在系統(tǒng)重啟之后不會去關(guān)注,因此對于這些錯誤文件不進行處理,從而進一步提高了錯誤文件的處理效率。
需要說明的是,對于前述的方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請并不受所描述的動作順序的限制,因為依據(jù)本申請,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作并不一定是本申請所必需的。參照圖4,示出了根據(jù)本發(fā)明一個實施例的一種應(yīng)用程序調(diào)用文件的裝置的結(jié)構(gòu)框圖,在本發(fā)明實施例中,所述錯誤文件為磁盤錯誤文件。所述裝置包括讀取模塊401、解析模塊402、記錄時間獲取模塊403、檢測模塊404、忽略模塊405、文件路徑獲取模塊406、重命名模塊407。其中,讀取模塊401,用于讀取系統(tǒng)事件日志;所述讀取模塊通過在文件掃描過程中調(diào)用動態(tài)鏈接庫中的應(yīng)用程序編程接口 API讀取所述系統(tǒng)事件日志。解析模塊402,用于解析所述系統(tǒng)事件日志,獲取其中的文件錯誤事件日志;所述解析模塊402包括特定系統(tǒng)事件日志獲取單元,用于獲取所述系統(tǒng)事件日志中特定的事件ID對應(yīng)的所有系統(tǒng)事件日志,所述特定的事件ID為包含文件錯誤事件日志的一類系統(tǒng)事件日志對應(yīng)的事件ID ;事件描述獲取單元,用于獲取所述特定的事件ID對應(yīng)的所有系統(tǒng)事件日志的事件描述;文件錯誤事件日志查找單元,用于查找所述事件描述為文件錯誤描述的系統(tǒng)事件日志,將所查找到的系統(tǒng)事件日志確定為文件錯誤事件日志。記錄時間獲取模塊403,用于在獲取所述文件錯誤事件日志中的錯誤文件的文件路徑之前,獲取所述文件錯誤事件日志的記錄時間;檢測模塊404,用于檢測所述文件錯誤事件日志的記錄時間是否滿足預(yù)設(shè)條件;當檢測結(jié)果為是時,所述文件路徑獲取模塊406獲取所述文件錯誤事件日志中的錯誤文件的文件路徑;當檢測結(jié)果為否時,所述忽略模塊405忽略所述文件錯誤事件日志。其中,所述預(yù)設(shè)條件為所述文件錯誤事件日志的記錄時間晚于本次開機時間,所述檢測模塊404包括事件ID獲取單元,用于獲取本次開機事件的事件ID ;開機時間查找單元,用于查找與所述本次開機事件的事件ID相匹配的記錄時間,將所述相匹配的記錄時間作為本次開機時間;判斷單元,用于判斷所述文件錯誤事件日志的記錄時間是否晚于所述本次開機時間;確定單元,用于當判斷單元的判斷結(jié)果為是時,確定所述文件錯誤事件日志的記錄時間滿足預(yù)設(shè)條件。忽略模塊405,用于當檢測模塊的檢測結(jié)果為否時,忽略所述文件錯誤事件日志。文件路徑獲取模塊406,用于獲取所述文件錯誤事件日志中的錯誤文件的文件路徑;
重命名模塊407,用于對所述文件路徑對應(yīng)的錯誤文件進行重命名;所述重命名模塊407包括增加擴展名單元,用于在所述錯誤文件的文件名后面增加一個文件擴展名。其中,所述文件擴展名為隨機數(shù)。由于對所述錯誤文件進行了重命名,因此當應(yīng)用程序在調(diào)用所述錯誤文件時,將不能找到原有的錯誤文件,此時應(yīng)用程序利用其自動新建文件功能建立一個與所述重命名前的錯誤文件具有相同文件名的新文件,并成功調(diào)用所述新文件。對于上述錯誤文件處理裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見圖I和圖2所示方法實施例的部分說明即可。本發(fā)明實施例可以在文件掃描過程中讀取系統(tǒng)事件日志,然后解析所述系統(tǒng)事件 日志,獲取其中的文件錯誤事件日志,并獲取所述文件錯誤事件日志中的錯誤文件的文件路徑,最后對所述文件路徑對應(yīng)的錯誤文件進行重命名。由于對錯誤文件進行了重命名,因此當應(yīng)用程序在調(diào)用所述錯誤文件時,不能找到原來的文件,此時應(yīng)用程序?qū)⒔⒁粋€與重命名前的錯誤文件具有相同文件名的新文件,并成功調(diào)用所述新文件。由此解決了由于突然斷電后應(yīng)用程序調(diào)用產(chǎn)生錯誤的文件而導(dǎo)致應(yīng)用程序崩潰的問題,同時也解決了由于應(yīng)用程序崩潰而彈出錯誤提示框,從而誤導(dǎo)用戶誤認為電腦中病毒的問題,使得計算機突然斷電并重啟之后,應(yīng)用程序仍然可以正常運行?;谏鲜鲥e誤文件處理裝置實施例,本發(fā)明實施例還提供了一種包含該裝置的客戶端設(shè)備。所述客戶端設(shè)備通過讀取系統(tǒng)事件日志,并解析所述系統(tǒng)事件日志,獲取其中的文件錯誤事件日志,然后獲取所述文件錯誤事件日志中的錯誤文件的文件路徑,最后對所述文件路徑對應(yīng)的錯誤文件進行重命名,當應(yīng)用程序在調(diào)用所述錯誤文件時,由于不能找到原有的錯誤文件,因此應(yīng)用程序會自動建立一個與所述重命名前的錯誤文件具有相同文件名的新文件,并成功調(diào)用所述新文件。從而解決了由于突然斷電后應(yīng)用程序調(diào)用產(chǎn)生錯誤的文件而導(dǎo)致應(yīng)用程序崩潰的問題,同時也解決了由于應(yīng)用程序崩潰而彈出錯誤提示框,從而誤導(dǎo)用戶誤認為電腦中病毒的問題,使得計算機突然斷電并重啟之后,應(yīng)用程序仍然可以正常運行。本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。本領(lǐng)域技術(shù)人員易于想到的是上述各個實施例的任意組合應(yīng)用都是可行的,故上述各個實施例之間的任意組合都是本申請的實施方案,但是由于篇幅限制,本說明書在此就不一一詳述了。在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式
的權(quán)利要求書由此明確地并入該具體實施方式
,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中。可以把實 施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的應(yīng)用程序調(diào)用文件的裝置和客戶端設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權(quán)利要求
1.一種應(yīng)用程序調(diào)用文件的方法,包括 讀取系統(tǒng)事件日志; 解析所述系統(tǒng)事件日志,獲取其中的文件錯誤事件日志; 獲取所述文件錯誤事件日志中的錯誤文件的文件路徑; 在所述錯誤文件的文件名后面增加一個文件擴展名; 當應(yīng)用程序在調(diào)用所述錯誤文件時,建立一個與所述重命名前的錯誤文件具有相同文件名的新文件,并調(diào)用所述新文件。
2.如權(quán)利要求I所述的方法,所述文件擴展名為隨機數(shù)。
3.如權(quán)利要求I所述的方法,所述解析所述系統(tǒng)事件日志,獲取其中的文件錯誤事件日志,包括 獲取所述系統(tǒng)事件日志中特定的事件ID對應(yīng)的所有系統(tǒng)事件日志,所述特定的事件ID為包含文件錯誤事件日志的一類系統(tǒng)事件日志對應(yīng)的事件ID ; 獲取所述特定的事件ID對應(yīng)的所有系統(tǒng)事件日志的事件描述; 查找所述事件描述為文件錯誤描述的系統(tǒng)事件日志,將所查找到的系統(tǒng)事件日志確定為文件錯誤事件日志。
4.如權(quán)利要求I至3中任一項所述的方法,在獲取所述文件錯誤事件日志中的錯誤文件的文件路徑之前,還包括 獲取所述文件錯誤事件日志的記錄時間; 檢測所述文件錯誤事件日志的記錄時間是否滿足預(yù)設(shè)條件; 若滿足,則執(zhí)行獲取所述文件錯誤事件日志中的錯誤文件的文件路徑的步驟; 否則,忽略所述文件錯誤事件日志。
5.如權(quán)利要求4所述的方法,所述預(yù)設(shè)條件為所述文件錯誤事件日志的記錄時間晚于本次開機時間。
6.如權(quán)利要求5所述的方法,所述檢測所述文件錯誤事件日志的記錄時間是否滿足預(yù)設(shè)條件,包括 獲取本次開機事件的事件ID ; 查找與所述本次開機事件的事件ID相匹配的記錄時間,將所述相匹配的記錄時間作為本次開機時間; 判斷所述文件錯誤事件日志的記錄時間是否晚于所述本次開機時間; 若是,則確定所述文件錯誤事件日志的記錄時間滿足預(yù)設(shè)條件。
7.如權(quán)利要求I至6中任一項所述的方法, 通過在文件掃描過程中調(diào)用動態(tài)鏈接庫中的應(yīng)用程序編程接口 API讀取所述系統(tǒng)事件日志。
8.如權(quán)利要求I至6中任一項所述的方法,所述錯誤文件為磁盤錯誤文件。
9.一種應(yīng)用程序調(diào)用文件的裝置,包括 讀取模塊,用于讀取系統(tǒng)事件日志; 解析模塊,用于解析所述系統(tǒng)事件日志,獲取其中的文件錯誤事件日志; 文件路徑獲取模塊,用于獲取所述文件錯誤事件日志中的錯誤文件的文件路徑; 重命名模塊,用于對所述文件路徑對應(yīng)的錯誤文件進行重命名;當應(yīng)用程序通過在調(diào)用所述錯誤文件時,建立一個與所述重命名前的錯誤文件具有相同文件名的新文件,并調(diào)用所述新文件; 其中所述重命名模塊包括增加擴展名單元,用于在所述錯誤文件的文件名后面增加一個文件擴展名。
10.如權(quán)利要求9所述的裝置,所述文件擴展名為隨機數(shù)。
11.如權(quán)利要求9所述的裝置,所述解析模塊包括 特定系統(tǒng)事件日志獲取單元,用于獲取所述系統(tǒng)事件日志中特定的事件ID對應(yīng)的所有系統(tǒng)事件日志,所述特定的事件ID為包含文件錯誤事件日志的一類系統(tǒng)事件日志對應(yīng)的事件ID ; 事件描述獲取單元,用于獲取所述特定的事件ID對應(yīng)的所有系統(tǒng)事件日志的事件描述; 文件錯誤事件日志查找單元,用于查找所述事件描述為文件錯誤描述的系統(tǒng)事件日志,將所查找到的系統(tǒng)事件日志確定為文件錯誤事件日志。
12.如權(quán)利要求9至11中任一項所述的裝置,還包括 記錄時間獲取模塊,用于在獲取所述文件錯誤事件日志中的錯誤文件的文件路徑之前,獲取所述文件錯誤事件日志的記錄時間; 檢測模塊,用于檢測所述文件錯誤事件日志的記錄時間是否滿足預(yù)設(shè)條件; 所述文件路徑獲取模塊當檢測模塊的檢測結(jié)果為是時,獲取所述文件錯誤事件日志中的錯誤文件的文件路徑; 忽略模塊,用于當檢測模塊的檢測結(jié)果為否時,忽略所述文件錯誤事件日志。
13.如權(quán)利要求12所述的裝置,所述預(yù)設(shè)條件為所述文件錯誤事件日志的記錄時間晚于本次開機時間。
14.如權(quán)利要求13所述的裝置,所述檢測模塊包括 事件ID獲取單元,用于獲取本次開機事件的事件ID ; 開機時間查找單元,用于查找與所述本次開機事件的事件ID相匹配的記錄時間,將所述相匹配的記錄時間作為本次開機時間; 判斷單元,用于判斷所述文件錯誤事件日志的記錄時間是否晚于所述本次開機時間;確定單元,用于當判斷單元的判斷結(jié)果為是時,確定所述文件錯誤事件日志的記錄時間滿足預(yù)設(shè)條件。
15.如權(quán)利要求9至14中任一項所述的裝置, 所述讀取模塊通過在文件掃描過程中調(diào)用動態(tài)鏈接庫中的應(yīng)用程序編程接口 API讀取所述系統(tǒng)事件日志。
16.如權(quán)利要求9至14中任一項所述的裝置,所述錯誤文件為磁盤錯誤文件。
17.一種客戶端設(shè)備,包括如上述權(quán)利要求9至16中任一項所述的應(yīng)用程序調(diào)用文件的裝置。
全文摘要
本發(fā)明公開了一種應(yīng)用程序調(diào)用文件的方法和裝置及客戶端設(shè)備。其中,該裝置包括讀取模塊;解析模塊;文件路徑獲取模塊;重命名模塊;其中所述重命名模塊包括增加擴展名單元。本發(fā)明能夠在計算機突然斷電并重啟之后,對產(chǎn)生錯誤的文件進行處理,使得應(yīng)用程序仍然可以正常運行。
文檔編號G06F11/07GK102929732SQ20121039786
公開日2013年2月13日 申請日期2012年10月18日 優(yōu)先權(quán)日2012年10月18日
發(fā)明者謝重陽 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司