zoukankan      html  css  js  c++  java
  • 【C#文件夹锁】C#文件夹加锁小工具

      用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: Folder protection for Windows using C# and concepts on Windows Shell menu for folders

    Thanks, King!

  • 相关阅读:
    高级排序
    递归
    Linked List
    中缀、后缀、前缀表达式
    队列(queue)
    栈(Stack)
    数组(Array)
    数据结构和算法
    常见排序
    开启
  • 原文地址:https://www.cnblogs.com/DebugLZQ/p/2494610.html
Copyright © 2011-2022 走看看