用C#語言實(shí)現(xiàn)一個(gè)文件夾鎖的程序,網(wǎng)上類似的“xxx文件夾xxx”軟件很多,但是基本上都是C/C++語言實(shí)現(xiàn)的,且都沒有提供源碼(這個(gè)可以理解,畢竟是加密程序,不應(yīng)該泄露源碼)。
程序的基本原理是:用C#語言重命名文件夾,通過重命名使之成為windows安全文件的類標(biāo)識(shí)符。具體的方法是為文件夾添加拓展名“.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}”
(.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}是windows安全文件的類標(biāo)識(shí)符),這時(shí)文件夾的圖標(biāo)就會(huì)變成一把鎖,這樣文件夾就被加鎖了。
程序的主界面非常簡(jiǎn)潔,截圖如下:
程序中加密解密文件夾的核心代碼如下:
private void btnBrowseFolder_Click(object sender, EventArgs e)
{
status = lockType;//
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
DirectoryInfo d = new DirectoryInfo(folderBrowserDialog1.SelectedPath);
string selectedpath = d.Parent.FullName + d.Name;
if (folderBrowserDialog1.SelectedPath.LastIndexOf(".{") == -1)//通過文件夾名稱,判斷加密
{
SetPwd(folderBrowserDialog1.SelectedPath);
if (!d.Root.Equals(d.Parent.FullName))
{
d.MoveTo(d.Parent.FullName + "\\" + d.Name + status);//文件夾重命名
}
else d.MoveTo(d.Parent.FullName + d.Name + status);
txtFolderPath.Text = folderBrowserDialog1.SelectedPath;
}
else//解密文件夾
{
status = GetStatus(status);
bool s = CheckPwd();
if (s)
{
File.Delete(folderBrowserDialog1.SelectedPath + "\\key.xml");
string path = folderBrowserDialog1.SelectedPath.Substring(0, folderBrowserDialog1.SelectedPath.LastIndexOf("."));
d.MoveTo(path);
txtFolderPath.Text = path;
}
}
}
}
程序的運(yùn)行效果如下:
以加密D盤下面的test文件夾為例,結(jié)果如下:
首先通過folderBrowserDialog選擇相應(yīng)的文件夾
輸入密碼,加鎖
效果如下:
此時(shí)雙擊文件夾已經(jīng)無法打開。
選擇加密后的test文件夾,輸入加密時(shí)輸入的密碼,可解鎖。
test文件夾已經(jīng)解密
結(jié)束語:本文件夾加密程序是通過重命名文件夾的方式實(shí)現(xiàn)的,加密強(qiáng)度較弱,牛人繞道,寫出來給大家多個(gè)談資~