作者:小5聊基础
简介:一只喜欢全栈方向的程序员,欢迎咨询,尽绵薄之力答疑解惑
编程原则:Write Less Do More
1、开发环境信息
1)操作系统:windows11 专业版
2)开发工具:Microsoft Visual Studio Professional 2017
3)开发框架:.NET Framework 4.6.1
2、界面设计
1)目标文件夹文本框
输入加解锁目标路径值
2)选择按钮
点击按钮能够选择目标路径,确定后,并且能够赋值到文本框里,此处和文件夹选择组件结合使用
3)加锁按钮
点击按钮,对目标文件夹进行加锁操作
4)解锁按钮
点击按钮,对目标文件夹进行解锁操作
3、浏览文件夹对话框组件
直接双击或者拖入到目标Form窗体即可,这个组件需要配合对应的按钮使用,由按钮或者其他控件的点击事件,间接触发文件夹浏览选择对话框
- 具体代码如下
private void btnSelectFolder_Click(object sender, EventArgs e)
{
folderBrowserDialog.Description = "请选择文件夹";
folderBrowserDialog.RootFolder = Environment.SpecialFolder.MyComputer;
folderBrowserDialog.ShowNewFolderButton = true;
if (txtTargetFolder.Text.Length > 0) folderBrowserDialog.SelectedPath = txtTargetFolder.Text;
if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
{
txtTargetFolder.Text = folderBrowserDialog.SelectedPath;
}
}
- 选择文件夹效果
4、加锁按钮
点击加锁按钮,对目标文件夹进行加锁操作
编号 | 关键类 | 备注 |
---|---|---|
1 | DirectorySecurity | 目录安全类 |
2 | FileSystemAccessRule | 系统文件访问规则类 |
3 | Environment.UserName | 当前系统的登录用户 |
- 加锁前,文件夹打开浏览到的文件界面
- 加锁后,显示的效果
- 代码如下
private void btnAddLock_Click(object sender, EventArgs e)
{
try
{
string folderPath = txtTargetFolder.Text;
if (string.IsNullOrWhiteSpace(folderPath))
{
MessageBox.Show("请输入或者选择目标文件夹!");
return;
}
DirectorySecurity directorySecurity = Directory.GetAccessControl(folderPath);
FileSystemAccessRule fileSystemAccessRule = new FileSystemAccessRule(Environment.UserName, FileSystemRights.FullControl, AccessControlType.Deny);
directorySecurity.AddAccessRule(fileSystemAccessRule);
Directory.SetAccessControl(folderPath, directorySecurity);
MessageBox.Show($"加锁成功!");
}
catch (Exception ex)
{
MessageBox.Show($"加锁失败:{ex.Message}");
}
}
5、解锁按钮
点击解锁按钮,对目标文件夹进行解锁操作
- 代码如下
private void btnUnLock_Click(object sender, EventArgs e)
{
try
{
string folderPath = txtTargetFolder.Text;
if (string.IsNullOrWhiteSpace(folderPath))
{
MessageBox.Show("请输入或者选择目标文件夹!");
return;
}
DirectorySecurity directorySecurity = Directory.GetAccessControl(folderPath);
FileSystemAccessRule fileSystemAccessRule = new FileSystemAccessRule(Environment.UserName, FileSystemRights.FullControl, AccessControlType.Deny);
directorySecurity.RemoveAccessRule(fileSystemAccessRule);
Directory.SetAccessControl(folderPath, directorySecurity);
MessageBox.Show($"解锁成功!");
}
catch (Exception ex)
{
MessageBox.Show($"解锁失败:{ex.Message}");
}
}
6、常见设置
1)设置窗体居中显示
确定窗体第一次出现的位置,Form组件属性StartPosition=CenterScreen
到此,加解锁文件夹的小工具就完成了
感兴趣的小伙伴们,加锁了的文件夹,在PE系统下是否能够打开呢!可以尝试下