博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【C#文件夹锁】C#文件夹加锁小工具
阅读量:4576 次
发布时间:2019-06-08

本文共 2194 字,大约阅读时间需要 7 分钟。

  用C#语言实现一个文件夹锁的程序,网上类似的“xxx文件夹xxx”软件很多,但是基本上都是C/C++语言实现的,且都没有提供源码(这个可以理解,毕竟是加密程序,不应该泄露源码)。

  程序的基本原理是:用C#语言重命名文件夹,通过重命名使之成为windows安全文件的类标识符。具体的方法是为文件夹添加拓展名“.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}”

(.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}是windows安全文件的类标识符),这时文件夹的图标就会变成一把锁,这样文件夹就被加锁了。

  程序的主界面非常简洁,截图如下:

程序中加密解密文件夹的核心代码如下:

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; } } } }

程序的运行效果如下:

以加密D盘下面的test文件夹为例,结果如下:

首先通过folderBrowserDialog选择相应的文件夹

输入密码,加锁

效果如下:

此时双击文件夹已经无法打开。

选择加密后的test文件夹,输入加密时输入的密码,可解锁。

test文件夹已经解密

结束语:本文件夹加密程序是通过重命名文件夹的方式实现的,加密强度较弱,牛人绕道,写出来给大家多个谈资~

希望对各位博友有帮助。请点击下面的“绿色通道”---“关注DebugLZQ”,与DebugLZQ一起交流进步~

 

Update 2014-02-06:

Thanks, King!

转载于:https://www.cnblogs.com/DebugLZQ/archive/2012/05/10/2494610.html

你可能感兴趣的文章
Trie模版
查看>>
2018HDU多校训练-3-Problem F. Grab The Tree
查看>>
2016012032四则运算网页版结对项目报告
查看>>
边工作边刷题:70天一遍leetcode: day 45
查看>>
淘宝专业版改基础版方法
查看>>
[转]ARM Pipeline
查看>>
[转]Blocking Code Injection on iOS and OS X
查看>>
自动化测试
查看>>
vue $options 获取自定义属性
查看>>
Vue避免 v-if 和 v-for 用在一起
查看>>
iview3 版本 升级
查看>>
EditTest 属性大全[便自己查阅]
查看>>
Webform 服务器控件与客户端控件以及验证控件
查看>>
TraceSource记录程序日志
查看>>
【Source教程】GCFScape下载安装与使用
查看>>
数据结构 单链表反转 回顾练习
查看>>
N!分解素因子及若干问题
查看>>
主动对象
查看>>
C++ string int 转换 split
查看>>
网站繁简切换的JS遇到的一个BUG
查看>>