【C#】winform实现锁定和解锁文件夹功能

简介: 有个朋友找我,问我有没有一个简单的小工具,能够直接对文件夹进行加密或者加锁,带着这个朋友的需求就简单的实现了加解锁文件夹功能的小工具!大家也可以想一想,在什么场景下需要对文件夹进行加锁操作呢?1)一些比较敏感工作文件2)防止别人复制个人的学习成果文件等等场景
作者:小5聊基础
简介:一只喜欢全栈方向的程序员,欢迎咨询,尽绵薄之力答疑解惑
编程原则:Write Less Do More

1、开发环境信息

1)操作系统:windows11 专业版

2)开发工具:Microsoft Visual Studio Professional 2017

3)开发框架:.NET Framework 4.6.1

2、界面设计

image.png
1)目标文件夹文本框

输入加解锁目标路径值

2)选择按钮

点击按钮能够选择目标路径,确定后,并且能够赋值到文本框里,此处和文件夹选择组件结合使用


3)加锁按钮

点击按钮,对目标文件夹进行加锁操作

4)解锁按钮

点击按钮,对目标文件夹进行解锁操作

3、浏览文件夹对话框组件

直接双击或者拖入到目标Form窗体即可,这个组件需要配合对应的按钮使用,由按钮或者其他控件的点击事件,间接触发文件夹浏览选择对话框
image.png

  • 具体代码如下
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;
    }
}
  • 选择文件夹效果

image.png

4、加锁按钮

点击加锁按钮,对目标文件夹进行加锁操作

编号 关键类 备注
1 DirectorySecurity 目录安全类
2 FileSystemAccessRule 系统文件访问规则类
3 Environment.UserName 当前系统的登录用户
  • 加锁前,文件夹打开浏览到的文件界面

image.png

  • 加锁后,显示的效果

image.png

  • 代码如下
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系统下是否能够打开呢!可以尝试下
相关文章
|
10天前
|
C#
【C#】 如何实现文本框历史记录提示功能
【C#】 如何实现文本框历史记录提示功能
19 0
|
24天前
|
C#
C# WinForm发送Email邮件
C# WinForm发送Email邮件
C# WinForm发送Email邮件
|
3月前
|
SQL 数据库连接 应用服务中间件
C#WinForm基础编程(三)
C#WinForm基础编程
80 0
|
3月前
C#WinForm基础编程(二)
C#WinForm基础编程
61 0
|
3月前
|
C# 数据安全/隐私保护
C#WinForm基础编程(一)
C#WinForm基础编程
62 0
|
1天前
|
编译器 C# 开发工具
C# 12 中新增的几大功能你都知道吗?
C# 12 中新增的几大功能你都知道吗?
|
1天前
|
C# 开发者 Windows
C#开源的两款功能强大的录屏神器
ScreenToGif和ShareX是两款免费、开源的Windows截图和GIF制作工具,由C#开发。ScreenToGif适合教程制作和趣味GIF,而ShareX则提供灵活的截图及上传功能。两者都在GitHub上有源代码,相关介绍链接也已提供。此外,它们都已被收录进C#/.NET/.NET Core的优秀项目精选列表,以帮助开发者发现最新最佳实践。
|
24天前
|
JavaScript C#
C#winForm程序与html JS交互调用
C#winForm程序与html JS交互调用
|
2月前
|
C# 开发者
35.c#:winform窗口
35.c#:winform窗口
13 1
|
2月前
|
数据挖掘 C# 开发工具
采用C#语言开发的全套医院体检系统PEIS源码功能介绍
体检系统,是专为体检中心/医院体检科等体检机构,专门开发的全流程管理系统,通过软件实现检测仪器数据自动提取,内置多级医生工作台,细化工作将体检检查结果汇总,生成体检报告登记到计算机系统中。通过软件系统进行数据分析统计与评判以及建立体检相关的体检档案。从而实现体检流程的信息化,提高工作效率,减少手动结果录入的一些常犯错误。 在实际应用中,医院体检系统能够解决传统体检中手工操作带来的问题,如工作量大、效率低下、易漏检、重检或错检等。通过与医院信息系统(如HIS、LIS、PACS等)的连接,系统能够满足体检中心的日常工作流程,提供更好的管理、统计和查询分析功能。同时,基于网络基础的系统可以在网上传输
28 1