《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 磁盤垃圾文件快速清理工具設計及實現
磁盤垃圾文件快速清理工具設計及實現
周利榮
(浙江工業大學 浙西分校圖書館,浙江 衢州 324000)
摘要: 針對磁盤清理工具速度慢、清理不徹底的情況,采用搜索與清理功能分離、程序與數據庫分離的方法,加快磁盤清理的速度,并且用戶可在數據庫中增加垃圾文件的類型,從而實現軟件升級,徹底清除磁盤垃圾文件。
關鍵詞: VB 6.0 垃圾文件 清理
Abstract:
Key words :

摘  要: 針對磁盤清理工具速度慢、清理不徹底的情況,采用搜索與清理功能分離、程序與數據庫分離的方法,加快磁盤清理的速度,并且用戶可在數據庫中增加垃圾文件的類型,從而實現軟件升級,徹底清除磁盤垃圾文件。
關鍵詞: VB 6.0;垃圾文件;清理 

    磁盤清理是通過刪除無用文件,增加磁盤的可用空間。Windows系統附件中的磁盤清理工具可以清理磁盤中的垃圾文件,還有許多專門用于磁盤清理的軟件如Disk Cleaner、EasyClean、track eraser pro。但這些軟件都存在清理不徹底或清理速度慢的問題,如執行系統附件中的磁盤清理工具后執行命令dir*.tmp/s,發現磁盤仍存在大量垃圾文件,采用Disk Cleaner、track eraser pro等軟件雖然清理較徹底但速度較慢。針對以上問題,本文介紹了解決這些問題的方法。
1 解決問題的途經
    無論是系統產生的垃圾文件還是應用程序產生的垃圾文件,都存在于固定少數目錄中。如果磁盤清理都從每個分區的根目錄開始遍歷所有文件夾搜索垃圾文件然后執行清理,必然造成軟件將大量時間用在搜索垃圾文件上從而造成清理速度慢的問題。因此,必須將軟件的搜索功能與清理功能分離。軟件若沒有某種清理垃圾文件的功能,用戶是不能更改軟件的,必須將垃圾文件的類型信息保存在數據庫的垃圾文件類型表中。搜索程序從數據庫的垃圾文件類型表中讀取信息執行搜索功能,將搜索到的垃圾文件目錄保存在數據庫的垃圾文件信息表中,清理程序從數據庫的垃圾文件信息表中讀取信息,快速搜索固定目錄下的垃圾文件并執行清理功能,從而實現快速清除垃圾文件。
2 程序功能
    程序主要具有兩方面功能:預處理功能和磁盤清理功能。
    (1)預處理功能
    預處理模塊從數據庫的垃圾文件類型表中讀取記錄,搜索硬盤每個分區存在垃圾文件的目錄,并將垃圾文件類型及垃圾文件的目錄保存在數據庫的垃圾文件信息表中。用戶若想增加程序清理某種垃圾文件的功能,無需修改程序,只需在垃圾文件類型表中增加一條記錄即可。
    (2)磁盤清理功能
    清理模塊從數據庫的垃圾文件信息表中讀取記錄,根據垃圾文件類型及存在目錄快速搜索并刪除垃圾文件,無需遍歷所有文件夾搜索垃圾文件。用戶若沒有刪除或安裝軟件,也沒有在垃圾文件類型表中增加記錄,則無需執行預處理模塊,直接執行清理模塊即可快速清除垃圾文件。程序各模塊的功能設計及相互關系如圖1所示。
3 個人電腦常見垃圾文件類型[1]及處理方法
    個人電腦常見垃圾文件主要有以下三類:
    (1)不存在于固定目錄中的垃圾文件
    主要包括:①擴展名為“.tmp”的臨時文件,在軟件安裝時產生;②擴展名為“.old”、“.bak”臨時交換文件,在軟件運行時產生;③擴展名為“.log”的日志文件,日志文件記錄著Windows系統中所發生的一切,包括各種系統服務的啟動、運行、關閉等信息,如Windows自動更新后在c:\windows目錄下有kbxxxxx.log文件,如果系統運行正常可以刪除;④磁盤檢查生成的臨時文件,擴展名為“.chk”;⑤用來加快縮略圖顯示的緩存數據庫文件Thumb.db[2],可以方便用戶對圖片進行預覽,圖片越多,文件就越大。
    (2)存在于固定目錄中的垃圾文件
    主要包括:①x:\Documents and Settings\用戶名\Local Settings\Temp\下的所有文件為用戶臨時文件,可以刪除;②x:\Windows\Temp\下的所有臨時文件;③x:\WindowsS\ServicePackFiles下的文件或文件夾,為升級sp1或sp2后的備份文件;④x:\Windows\SoftwareDistribution\download下的所有文件夾,用來存放Windows系統更新時的下載補丁,系統更新成功后可以刪除;⑤如果對系統進行過Windows升級,x:\Windows\下$xxxxx$的文件夾為備份文件夾,系統更新成功后可以刪除。其中x:為系統安裝的分區。
    (3)存在于固定目錄中的使用痕跡
    主要包括:①x:\Documents and Settings\用戶名\Cookies\下的所有Cookies文件;②x:\Documents and Settings\用戶名\LocalSettings\TemporaryInternet Files\下的所有文件,為IE瀏覽所保存的臨時文件;③x:\Documents and Settings\用戶名\Recent\下的所有文件為最近瀏覽文件的快捷方式;④x:\Documents and Settings\用戶名\Local Settings\History\下的所有文件為IE歷史記錄。其中x:為系統安裝的分區。
    處理方法:對于(1)類型的垃圾文件,預處理模塊搜索其存在目錄并存入垃圾文件信息表。對于(2)類型的垃圾文件, 預處理模塊直接將其存在目錄寫入垃圾文件信息表中,然后在清理模塊中清除。對于(3)類型的使用痕跡,直接在清理模塊中調用API函數清除。
4 程序設計
4.1 數據庫設計

    數據庫中包含2個表:垃圾文件類型表及垃圾文件信息表。垃圾文件類型表結構中只包含1個字段:垃圾文件類型。字段類型為文本型,字段大小為10。垃圾文件信息表結構中包含3個字段:(1)目錄。字段類型為文本型,字段大小為100;(2)垃圾文件類型。字段類型為文本型,字段大小為10;(3)刪除類型,字段類型為數字型,字段大小為整型,取值為16表示刪除文件夾,取值為0表示刪除文件。
4.2 預處理模塊設計
4.2.1 垃圾文件存在目錄的搜索及保存

    對于不存在于固定目錄中的垃圾文件,由于其存在的分區及目錄不確定,預處理模塊需搜索每個分區及所有文件夾。硬盤中有幾個分區對于個人電腦是不確定的,這需要用API函數GetDriveType(drive)判斷磁盤驅動器的類型:參數drive為驅動器盤符,函數返回值為5表示光盤驅動器,返回值為3表示硬盤驅動器,返回值為6表示RAM驅動器,返回值為4表示網絡驅動器,返回值為2表示軟盤驅動器。為遍歷所有分區,需用循環語句調用API函數GetDriveType(drive)[3]判斷是否為硬盤分區。其代碼如下:
    x=3
    i=67
    Do While x=3
    x=GetDriveType(Chr(i)+“:”)
    If x=3 Then
    R=Chr(i)+“:”
    fn=TreeSearch(R,cond,ff())
    End If
    i=i+1
    Loop
    其中,TreeSearch(R,cond,ff())是自定義函數(cond參數指定的垃圾文件類型)。函數功能是從分區根目錄R開始搜索存在垃圾文件的目錄,并將目錄保存在數組ff()中。程序調用函數GetDriveType(drive)判斷由Chr(i)+“:”盤符指定有分區是否為硬盤驅動器,若是硬盤驅動器則調用TreeSearch()存在垃圾文件的目錄。程序將搜索到的結果以記錄的形式保存在數據庫垃圾文件信息表中。
    對于存在于固定目錄中的垃圾文件,由于操作系統安裝的分區及目錄可以更改,用戶名可由用戶設置,上述x:\Windows是變量,在VB中,可用函數Environ(“windir”)獲取其值。變量x:\Windows\SoftwareDistribution\download的值可用Environ(“windir”) & “\SoftwareDistribution\download”得到。x:\Documents and Settings\用戶名\Local Settings\Temp\的實際值可用函數Environ(“temp”)獲取。預處理模塊直接以記錄的形式將存在于固定目錄中的垃圾文件信息保存在數據庫垃圾文件信息表中。
4.2.2 預處理模塊所需控件
    (1)ADO DATA控件ADODC1,用于連接數據庫打開指定的表,visible屬性為false。
    (2)命令按鈕command1,用于添加垃圾文件類型并保存在數據庫中。caption屬性為“添加”,單此按鈕彈出對話框要求輸入垃圾文件類型,程序將其保存在垃圾文件類型表中。為避免刪除“.sys”、“.exe”、“.dll”等正常文件,在保存前應對其合法性進行判斷。
4.3 清理模塊設計
4.3.1 清理模塊所需控件

    (1)ADO DATA控件ADODC1,用于連接數據庫打開指定的表,visible屬性為false。
    (2)用于保存垃圾文件的列表框list1及保存垃圾文件夾的列表框list2。
    (3)標簽label1用于顯示垃圾文件清理結果。
    (4)命令按鈕command1,caption屬性為“清除垃圾文件(夾)”,用于清除垃圾文件和垃圾文件夾。
    (5)命令按鈕command2,caption屬性為“清除使用痕跡”,用于清除第3節(3)所述的使用痕跡。
4.3.2 垃圾文件的搜索與清除
    對于不存在或存在于固定目錄中的垃圾文件,由于在預處理模塊已經將其存在目錄、垃圾文件類型、刪除類型保存在數據庫垃圾文件信息表中,因此,程序只需從表中依次讀取記錄,調用自定義函數search(path,type,deletype)從path目錄搜索由type指定的垃圾文件(夾),根據deletype的取值,如果要刪除的是文件,則搜索并添加垃圾文件于列表框list1;如果要刪除的是文件夾,則搜索并添加垃圾文件夾于列表框list2。自定義函數search(path,type,deletype)3個參數的取值是記錄中3個字段的取值。用kill函數刪除List1中指定的垃圾文件,有的垃圾文件正在使用而無法刪除,可用On Error Resume Next跳過。用shell語句調用DOS內部命令rd刪除List2指定的垃圾文件夾,參數/s表示除目錄本身外,還將刪除指定目錄下的所有子目錄和文件。/q表示以安靜模式刪除,刪除目錄樹時不要求確認。其代碼如下:
    For I=0 To List1.ListCount-1
    On Error Resume Next
    Kill List1.List(I)
    Next I
    For I=0 To List2.ListCount-1
    On Error Resume Next
    Shell Environ(“system”)+“\cmd.exe/crd”+List2.List(I)
                 +“/s/q”,vbHide
    Next I
    IE的緩存和Cookies,可以通過API函數來進行操作,如果要查找所有的緩存和Cookies,需要使用FindFirstUrlCacheEntry和FindNextUrlCacheEntry這2個函數判斷IE的緩沖文件存儲的位置并取得該文件;如果要刪除相對應的緩存和Cookies,就使用DeleteUrlCacheEntry函數[4]。刪除最近訪問過的文檔可以通過API函數SHAddToRecentDocs(SHARD_PATH, vbNullString)來實現。清除IE歷史記錄,可直接定位到注冊表中的位置,然后刪除 用API函數RegDeleteKey(HKEY_CURRENT_USER,“Software\Microsoft\Internet Explorer\TypedURLs”)[5]實現。
5 程序實現
5.1 創建數據庫

    創建數據庫中2個表:垃圾文件類型表及垃圾文件信息表的表結構。“.tmp”、“.old”、“.bak”等作為記錄添加到垃圾文件類型表中。
5.2 預處理模塊實現
    在新建工程中,將控件添加到窗口,并設置其屬性。要使用adodc1控件,需執行菜單命令[工程]|[部件],選擇“Microsoft ADO Data Control 6.0”,單擊“確定”。對預處理模塊使用的API函數、結構、常量加以聲明,編寫form_load()、command1_click()過程代碼。程序測試完成后將工程生成“.exe”文件。
5.3 清理模塊實現
    在新建工程中,將控件添加到窗口,并設置其屬性。對清理模塊使用的API函數、結構、常量加以聲明,編寫command1_click()、command2_click()過程代碼,程序測試完成后將工程生成.exe文件。
    本程序實現快速清理磁盤垃圾文件的關鍵在于:根據垃圾文件實際只存在于少數固定目錄的特點,采用兩分離技術(程序與數據庫分離、搜索目錄模塊與執行清理模塊分離),使其在計算機沒有安裝或刪除軟件的情況下只需執行清理模塊,避免程序將大量時間花在搜索垃圾文件上,在清理磁盤垃圾文件時具有快速、徹底的特點,避免垃圾文件存在造成的磁盤空間的浪費。本程序在VB6.0+ACCESS 2003、Windows 2003及Windows XP操作系統下運行通過。
參考文獻
[1] 張桂勇,陳芳瓊.API  FOR Windows 2000/XP詳解[M].北京:清華大學出版社,2003.
[2] 東方人華.Windows API編程范例入門與提高[M].北京:清華大學出版社,2004.
[3] 個人電腦常見垃圾文件類[EB/OL].http://zhidao.baidu.com/question/910249.html.2005-11-11.
[4] 如何刪除臨時文件夾中的內容?[EB/OL].http://topic.csdn.net/t/20060207/18/4544077.html.2006-02-07.
[5] 周利榮.Windows XP系統的幾個特殊文件和文件夾[J].電腦學習,2008(6):42-43.

此內容為AET網站原創,未經授權禁止轉載。
欧美激情办公室aⅴ_国产欧美综合一区二区三区_欧美午夜精品久久久久免费视_福利视频欧美一区二区三区

          欧美日韩亚洲另类| 欧美日韩国产一区二区三区地区| 国产一区二区三区直播精品电影 | 亚洲第一区色| 国产欧美一区二区精品性| 欧美日韩午夜视频在线观看| 欧美精品在线观看| 欧美国产精品劲爆| 免费一级欧美片在线播放| 久久在线免费观看视频| 久久亚洲精品视频| 麻豆精品精华液| 亚洲一区二区免费视频| 一区二区三区在线观看视频| 国产自产女人91一区在线观看| 国产精品自拍在线| 国产小视频国产精品| 国内精品美女av在线播放| 韩国v欧美v日本v亚洲v| 一区久久精品| 亚洲国产欧美一区二区三区久久 | 亚洲国产色一区| 好看的av在线不卡观看| 伊人婷婷欧美激情| 亚洲欧洲日产国码二区| 亚洲精品久久久久久久久| 亚洲人成绝费网站色www| 亚洲精品影院| 亚洲一二三区在线| 欧美一区深夜视频| 久久偷看各类wc女厕嘘嘘偷窃| 久久一综合视频| 嫩草成人www欧美| 欧美国产视频一区二区| 欧美日韩免费一区| 国产精品在线看| 国内久久精品| 亚洲精品乱码久久久久久按摩观 | 亚洲欧美日韩第一区| 欧美一级专区免费大片| 久久精品在线视频| 欧美激情2020午夜免费观看| 欧美天天综合网| 国产中文一区二区三区| 亚洲人成毛片在线播放| 亚洲一区二区伦理| 久久久国产91| 欧美日本三区| 国产日韩亚洲欧美| 亚洲电影在线| 亚洲一区观看| 久热精品视频| 欧美午夜精品久久久久免费视 | 国产精品美女黄网| 国内外成人免费视频| 亚洲精品美女在线| 亚洲欧美国产高清va在线播| 久久一日本道色综合久久| 欧美精品一区二区三区蜜桃| 国产精品羞羞答答| 在线视频成人| 亚洲天堂av电影| 久久九九久精品国产免费直播| 欧美高清视频一区| 国产精品一区二区男女羞羞无遮挡| 极品av少妇一区二区| 亚洲最黄网站| 久久午夜影视| 国产精品视频xxx| 亚洲日本成人| 久久av资源网站| 欧美日韩一区在线视频| 韩国三级电影一区二区| 亚洲视频一二| 一区二区三区欧美日韩| 久久久久久自在自线| 欧美午夜视频一区二区| 在线日本欧美| 伊人久久成人| 亚洲精选中文字幕| 亚洲一区免费在线观看| 久久天天躁狠狠躁夜夜av| 欧美视频中文一区二区三区在线观看 | 免费高清在线视频一区·| 欧美日韩亚洲激情| 在线观看国产精品网站| 亚洲欧美日韩一区二区三区在线| 欧美+日本+国产+在线a∨观看| 国产日韩精品一区| 亚洲视频免费在线| 欧美成人精品h版在线观看| 国产欧美一级| 一二三区精品| 欧美高清在线视频| 在线观看日韩av先锋影音电影院| 欧美一激情一区二区三区| 欧美午夜不卡视频| 亚洲精品网站在线播放gif| 老司机午夜精品| 国产一区二区三区丝袜| 亚洲欧美另类中文字幕| 欧美日韩国产在线一区| 最近中文字幕日韩精品 | 99精品欧美一区二区三区综合在线| 美女国产一区| 一色屋精品视频免费看| 久久国产精品黑丝| 国产啪精品视频| 午夜精品久久久久久久99黑人| 欧美午夜精品久久久久久浪潮| 日韩视频久久| 欧美另类视频| 亚洲精品三级| 欧美精品日韩一本| 亚洲精品在线视频观看| 欧美激情aⅴ一区二区三区| 亚洲国产欧美一区二区三区同亚洲 | 国产欧美日韩精品专区| 亚洲男人的天堂在线观看| 国产精品分类| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 亚洲精品国产日韩| 蜜臀av性久久久久蜜臀aⅴ四虎 | 精品va天堂亚洲国产| 欧美一区二区在线| 国产午夜精品久久久久久免费视| 午夜欧美不卡精品aaaaa| 国产欧美一级| 久久av一区| 国产一区二区三区四区五区美女| 久久激情综合网| 国色天香一区二区| 老牛嫩草一区二区三区日本| 在线观看av不卡| 欧美成人dvd在线视频| 亚洲精品日韩欧美| 欧美四级在线观看| 午夜欧美精品| 精品999成人| 欧美国产日韩一区二区在线观看 | 夜色激情一区二区| 欧美性淫爽ww久久久久无| 亚洲欧美区自拍先锋| 国产在线不卡视频| 免费观看日韩| 一区二区三区黄色| 国产欧美一区在线| 快播亚洲色图| 亚洲天堂av电影| 国产一区清纯| 欧美大片在线观看| 亚洲视频你懂的| 国内精品嫩模av私拍在线观看 | 最新热久久免费视频| 欧美人体xx| 亚洲欧美在线aaa| 精品99一区二区三区| 欧美极品影院| 午夜一区不卡| 亚洲国产成人av| 国产精品v欧美精品v日韩| 久久国产视频网| 亚洲精品一区二区在线| 国产精品你懂的在线| 久久久亚洲综合| 99热免费精品| 国产一区二区成人久久免费影院| 欧美成人一区二免费视频软件| 一级日韩一区在线观看| 国产一区二区三区久久悠悠色av | 免费在线欧美视频| 一区二区三欧美| 国内成+人亚洲+欧美+综合在线| 欧美护士18xxxxhd| 亚洲欧美中日韩| 亚洲精品欧美精品| 国产一区二三区| 欧美视频一区二区三区四区| 久久午夜精品| 亚洲一区中文字幕在线观看| 在线观看中文字幕亚洲| 国产精品福利网站| 欧美国产极速在线| 久久精品国产清自在天天线| 在线亚洲自拍| 亚洲高清资源| 国产亚洲欧美一区在线观看| 欧美女同视频| 久久久免费av| 亚洲免费视频在线观看| 亚洲日本中文字幕| 狠狠色伊人亚洲综合成人| 国产精品久久久久影院亚瑟| 欧美极品在线播放| 久久在线免费| 香蕉av777xxx色综合一区| 99视频精品| 亚洲片国产一区一级在线观看| 黑人一区二区三区四区五区| 国产精品美女久久久久久免费|