直播中
視窗操作系統(tǒng)的回收站是對(duì)文件一種保護(hù)措施,他主要是作用是不言而喻的。在新的視窗2000系統(tǒng)之中,當(dāng)我把文件刪除到回收站中以后,按動(dòng)"清空回收站"按鈕,想清空回收站,此時(shí)往往提示"某某文件夾不為空,無(wú)法刪除"的信息。所以只好全部恢復(fù),然后到要?jiǎng)h除的文件夾中,先刪除里面的文件,后刪除文件夾,這樣才可以清空回收站。但這給我們操作系統(tǒng)帶來(lái)了煩惱。本文就是利用Visual C#在處理文件方面的強(qiáng)大功能,來(lái)做一個(gè)軟件,利用此軟件來(lái)清空回收站里面的要?jiǎng)h除的文件,從而解除這種煩惱。
一.程序設(shè)計(jì)的主要思想
我們知道視窗系統(tǒng)是把我們將要?jiǎng)h除的文件信息都臨時(shí)保存在"C:\Recycled"目錄下面。在通過(guò)"清空回收站"按鈕來(lái)徹底此目錄下的要?jiǎng)h除的文件的。本程序的主要思路就是根據(jù)以上知識(shí)得來(lái)的。具體說(shuō)明如下:
?。?).首先判斷C盤根目錄下面的"Recycled"目錄是否為空。
?。?).如果不為空的話,就遍歷所有文件信息,并刪除文件。
二.程序設(shè)計(jì)和運(yùn)行環(huán)境
?。?).視窗系統(tǒng)2000專業(yè)版本
?。?)..Net FrameWork SDK Beta 2
三.程序設(shè)計(jì)的主要步驟和具體解釋
(1).如何判斷C盤根目錄下面的"Recycled"目錄是否為空。
要判斷"C:\Recycled"目錄中是否有文件信息,要經(jīng)過(guò)二個(gè)步驟,首先要確定找到此目錄。其次才能夠判斷此目錄是否為空。下面就按照這二個(gè)步驟來(lái)分別做具體介紹:
i>.如何在程序中找到"C:\Recycled"目錄。
在.Net FrameWork SDK中封裝了一個(gè)名稱空間--System.IO。此名稱空間中定義了許多與文件和目錄處理相關(guān)的類、對(duì)象、屬性和方法。Visual C#就是通過(guò)靈活調(diào)用這些資源來(lái)實(shí)現(xiàn)對(duì)文件和目錄的具體操作的。本文中主要用到此名稱空間中的二個(gè)類:Directory類和File類。前者在程序中主要用來(lái)處理和目錄相關(guān)的操作的,如確定目錄和獲得目錄中的文件信息。后者在程序中主要用來(lái)處理和文件相關(guān)的操作的,如刪除文件。在程序中用到Directory類中的GetFiles ( "目錄名稱")方法,此方法的返回的是一個(gè)枚舉型,此枚舉型是由一組字符串組成。GetFiles()方法是把在目錄中的每個(gè)文件名稱都形成一個(gè)字符串,然后由這些字符串組成形成一個(gè)枚舉類型。
ii>.判斷此目錄是否為空。
在此要介紹一下foreach語(yǔ)句,Visual C#是通過(guò)此語(yǔ)句來(lái)收集枚舉的。在本文中是通過(guò)他來(lái)列舉出在"C:\Recycled"存在的所有被刪除的文件信息的。
int c = 0 ; // 定義此變量主要是來(lái)判斷目錄中是否有文件
foreach ( string s1 in Directory.GetFiles ( "c:\\recycled" ) ) // 返回文件名稱字符串行時(shí)的枚舉類型
{
++c ;
}
if ( c > 0 ) //判斷是否存在文件如果 c > 0則回收站有文件,反之則沒(méi)有
{
…..
}
?。?).如果"C:\Recycled"目錄中不為空的話,就遍歷目錄中的所有文件信息,并刪除文件。
在本段落里面要介紹一下MessageBox類的用法。用過(guò)VB和Delphi的人一定知道在此類程序設(shè)計(jì)語(yǔ)言中,顯示提示信息是一件多么容易的事情。但在Visual C#中,這類操作顯然相對(duì)繁瑣些,但在靈活程度有了一定的提高。在Visual C#中,System.Windows.Forms名稱空間中封裝了一個(gè)MessageBox的類,在此類中又定義了與顯示提示信息相關(guān)的一些方法(Show方法)、對(duì)象和屬性。在本程序中就有關(guān)于MessageBox類的具體介紹。
要?jiǎng)h除磁盤上的文件就要使用到名稱空間System.IO中File類的Delete ( )方法。Delete ( )方法后面跟的參數(shù)是文件所在磁盤的全路徑名稱。要獲得文件的全路徑名稱,就還要使用到foreach語(yǔ)句,程序中就是foreach語(yǔ)句來(lái)從一個(gè)包含所有文件全路徑名稱的枚舉類型中獲得文件的全路徑名稱的。具體實(shí)現(xiàn)語(yǔ)句如下:
if ( c > 0 ) // 判斷"C:\Recycled"目錄中是否存在文件信息
{
DialogResult r = MessageBox.Show ( "是否確定?" , "垃圾處理!" ,
MessageBoxButtons.YesNo , MessageBoxIcon.Question ) ;
// 顯示"確定"和"取消"二個(gè)按鈕,圖標(biāo)顯示是一個(gè)問(wèn)號(hào)。
int ss=(int)r ;
if ( ss==6 ) // 按動(dòng)確定按鈕
{ foreach ( string s in Directory.GetFiles ( "c:\\recycled" ) )
// 把全路徑名稱房子 s中
{
File.Delete ( s ) ; //刪除此文件
}
}
}