Visual C#作為下一代主流的程序開發語言,其語言功能的強大是眾所周知的。並且又有一個內容十分豐富的程序開發包--.Net FrameWork SDK,作為他的後盾。這樣就使得Visual C#有了一個充分發揮其本領的舞台。Visual C#的強大功能不僅表現在支持各類數據庫的數據處理方面,還表現對網絡編程和文件處理等方面。
視窗操作系統的回收站是對文件一種保護措施,他主要是作用是不言而喻的。在新的視窗2000系統之中,當我把文件刪除到回收站中以後,按動"清空回收站"按鈕,想清空回收站,此時往往提示"某某文件夾不為空,無法刪除"的信息。所以只好全部恢復,然後到要刪除的文件夾中,先刪除裡面的文件,後刪除文件夾,這樣才可以清空回收站。但這給我們操作系統帶來了煩惱。本文就是利用Visual C#在處理文件方面的強大功能,來做一個軟件,利用此軟件來清空回收站裡面的要刪除的文件,從而解除這種煩惱。
一.程序設計的主要思想
我們知道視窗系統是把我們將要刪除的文件信息都臨時保存在"C:\Recycled"目錄下面。在通過"清空回收站"按鈕來徹底此目錄下的要刪除的文件的。本程序的主要思路就是根據以上知識得來的。具體說明如下:
(1).首先判斷C盤根目錄下面的"Recycled"目錄是否為空。
(2).如果不為空的話,就遍歷所有文件信息,並刪除文件。
二.程序設計和運行環境
(1).視窗系統2000專業版本
(2)..Net FrameWork SDK Beta 2
三.程序設計的主要步驟和具體解釋
(1).如何判斷C盤根目錄下面的"Recycled"目錄是否為空。
要判斷"C:\Recycled"目錄中是否有文件信息,要經過二個步驟,首先要確定找到此目錄。其次才能夠判斷此目錄是否為空。下面就按照這二個步驟來分別做具體介紹:
i>.如何在程序中找到"C:\Recycled"目錄。
在.Net FrameWork SDK中封裝了一個名稱空間--System.IO。此名稱空間中定義了許多與文件和目錄處理相關的類、對象、屬性和方法。Visual C#就是通過靈活調用這些資源來實現對文件和目錄的具體操作的。本文中主要用到此名稱空間中的二個類:Directory類和File類。前者在程序中主要用來處理和目錄相關的操作的,如確定目錄和獲得目錄中的文件信息。後者在程序中主要用來處理和文件相關的操作的,如刪除文件。在程序中用到Directory類中的GetFiles ( "目錄名稱")方法,此方法的返回的是一個枚舉型,此枚舉型是由一組字符串組成。GetFiles()方法是把在目錄中的每個文件名稱都形成一個字符串,然後由這些字符串組成形成一個枚舉類型。
ii>.判斷此目錄是否為空。
在此要介紹一下foreach語句,Visual C#是通過此語句來收集枚舉的。在本文中是通過他來列舉出在"C:\Recycled"存在的所有被刪除的文件信息的。
int c = 0 ; // 定義此變量主要是來判斷目錄中是否有文件 foreach ( string s1 in Directory.GetFiles ( "c:\\recycled" ) ) // 返回文件名稱字符串行時的枚舉類型 { ++c ; } if ( c > 0 ) //判斷是否存在文件如果 c > 0則回收站有文件,反之則沒有 { ….. }
(2).如果"C:\Recycled"目錄中不為空的話,就遍歷目錄中的所有文件信息,並刪除文件。
在本段落裡面要介紹一下MessageBox類的用法。用過VB和Delphi的人一定知道在此類程序設計語言中,顯示提示信息是一件多麼容易的事情。但在Visual C#中,這類操作顯然相對繁瑣些,但在靈活程度有了一定的提高。在Visual C#中,System.Windows.Forms名稱空間中封裝了一個MessageBox的類,在此類中又定義了與顯示提示信息相關的一些方法(Show方法)、對象和屬性。在本程序中就有關於MessageBox類的具體介紹。
要刪除磁盤上的文件就要使用到名稱空間System.IO中File類的Delete ( )方法。Delete ( )方法後面跟的參數是文件所在磁盤的全路徑名稱。要獲得文件的全路徑名稱,就還要使用到foreach語句,程序中就是foreach語句來從一個包含所有文件全路徑名稱的枚舉類型中獲得文件的全路徑名稱的。具體實現語句如下:
if ( c > 0 ) // 判斷"C:\Recycled"目錄中是否存在文件信息 { DialogResult r = MessageBox.Show ( "是否確定?" , "垃圾處理!" , MessageBoxButtons.YesNo , MessageBoxIcon.Question ) ; // 顯示"確定"和"取消"二個按鈕,圖標顯示是一個問號。 int ss=(int)r ; if ( ss==6 ) // 按動確定按鈕 { foreach ( string s in Directory.GetFiles ( "c:\\recycled" ) ) // 把全路徑名稱房子 s中 { File.Delete ( s ) ; //刪除此文件 } } }四.程序的源代碼(recycled.cs)、編譯方法及運行後的界面:
(1).程序的源代碼:recycled.cs:
using System.IO ; using System.Windows.Forms ; //導入程序中用到的名稱空間 class Recycle { public static void Main ( ) { int c = 0 ; // 定義此變量主要是來判斷目錄中是否有文件 foreach ( string s1 in Directory.GetFiles ( "c:\\recycled" ) ) // 返回文件名稱字符串行時的枚舉類型 { ++c ; } if ( c > 0 ) //判斷是否存在文件如果 c > 0則回收站有文件,反之則沒有 { DialogResult r = MessageBox.Show ( "是否確定?" , "垃圾處理!" , MessageBoxButtons.YesNo , MessageBoxIcon.Question ) ; // 顯示"確定"和"取消"二個按鈕,圖標顯示是一個問號。 int ss=(int)r ; if ( ss==6 ) // 按動確定按鈕 { foreach ( string s in Directory.GetFiles ( "c:\\recycled" ) ) // 把全路徑名稱房子 s中 { File.Delete ( s ) ; //刪除此文件 } } } } }
(2).編譯方法:
在經過如下命令行進行編譯後,就形成了一個Windows 的執行文件--recycled.exe。
csc /t:winexe /r:system.dll /r:system.windows.forms.dll recycled.cs
執行此文件就會得到以下的執行界面:
圖01:程序執行界面
五.總結:
本文是通過一個軟件的制做過程來具體說明Visual C#在文件處理方面的強大功能,其實上面所表述的只是Visual C#在文件處理方面的一個小的應用。不僅如此,Visual C#在其他方面也具有很強大的功能。有了.Net FrameWork SDK的這個強有力的後盾,Visual C#使得以前程序中困難處理的問題變得相對簡單了,使得原來不可能處理的問題變得可能了,這才是為什麼Visual C#成為下一代主流編程語言的原因。