關鍵點有以下幾個:
1、openFileDialog控件的使用
如果通過單擊選擇按鈕來實現選擇本地某個文件的功能呢?
具體來說分為以下幾步:
a、新建Winform窗體,畫好相應的控件。
b、在工具箱中找到openFileDialog,拖到“選擇文件”按鈕上,此時會出現如下這種效果:
此時openFileDialog會顯示在界面的下方,而不是界面上,這樣就可以了,通過單擊“選擇文件”按鈕即可實現打開本地某個文件的功能。
同時“選擇文件”按鈕的Click函數中需要添加下面幾行代碼:
DialogResult diaResult = this.openFile.ShowDialog(); if (diaResult == DialogResult.OK) { //內部可以獲取文件名之類的信息 }
那麼如果獲取打開路徑下的文件名、路徑信息呢?
可以通過這幾個屬性來實現:
a、openFileDialog控件的FileName屬性來獲取路徑信息,此時的路徑信息包含文件名及文件拓展名。
比如:E:\Work\Vs\TestEncryption\加密處理\待加密\死亡海岸線.txt
b、如果只想獲取“死亡海岸線”這個文件名呢?
Path.GetFileNameWithoutExtension(pathName)即可以實現這個功能,而且此時不帶文件拓展名奧,傳入參數pathName就是a中的路徑信息。
那麼如何在選擇相應文件後,獲取文件大小及拓展名呢?如下代碼即可實現:
FileInfo fi = new FileInfo(pathName); filetype = fi.Extension;//文件拓展名 filesize = fi.Length;//文件信息的字節數openFileDialog控件設置初始打開路徑有三種方式:
openFileSave.InitialDirectory = "E:\\Work\\Vs\\TestEncryption\\加密處理\\保存文件"; openFileSave.InitialDirectory = @"E:\\Work\\Vs\\TestEncryption\\加密處理\\保存文件";
還有一種方式是通過openFileDialog控件右擊屬性來實現的。
其中有一個屬性是:InitialDirectory,在其後面填寫:E:\Work\Vs\TestEncryption\加密處理\待加密\保存文件,效果與上面兩行代碼一樣。
c、其中用到的幾個函數為:
////// 讀取執行路徑下文件信息 /// /// 指定的路徑 /// 起始位置,一般設為零 /// 文件信息的長度 ///public static byte[] ReadFile(string filename, int start, int length) { byte[] btFile = null; using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read)) { btFile = new byte[length]; fs.Seek(start, SeekOrigin.Begin); fs.Read(btFile, 0, length); } return btFile; }
//將byte數組轉換為string public static string BytesToString(byte[] bt) { return Encoding.UTF8.GetString(bt); }
小注:
1、關於C#加密的代碼,網上有各種各樣,大家可以參考。
2、MD5 並不是加密算法,而是摘要算法。加密算法是可逆的,摘要算法是理論上不可逆的。如果說MD5是加密算法,那還不如稱他是超級壓縮算法呢,因為你輸入任意長度的明文給他,結果都是一個定長16 、32、64。
3、將加密後的信息寫入指定文件,可以參考記錄文本日志的函數。
4、ComBox控件的使用可以參考:ComBox控件。