本帖最后由 wjbych 于 2024-11-5 09:19 编辑
提醒:使用前请新建一个无用的文件夹先做测试,可正常使用后再加密其他文件夹
说明:软件只是对文件夹做了隐藏,禁止Everyone对文件夹的读写权限,并不是加密了文件
更新内容

image.png (45.56 KB, 下载次数: 1)
下载附件
2024-11-5 09:10 上传

image.png (26.94 KB, 下载次数: 1)
下载附件
2024-11-5 09:12 上传

image.png (39.03 KB, 下载次数: 2)
下载附件
2024-11-5 09:13 上传

image.png (12.01 KB, 下载次数: 1)
下载附件
2024-11-3 16:35 上传
初次登录时需要先设置个密码

image.png (14.95 KB, 下载次数: 1)
下载附件
2024-11-3 16:36 上传
登录后的样子

image.png (21.87 KB, 下载次数: 2)
下载附件
2024-11-3 16:36 上传
修改密码的样子

image.png (20.41 KB, 下载次数: 1)
下载附件
2024-11-3 16:37 上传
以后登录时样子

image.png (65.23 KB, 下载次数: 3)
下载附件
2024-11-3 16:38 上传
引用的包,不要删除

image.png (25 KB, 下载次数: 1)
下载附件
2024-11-3 16:39 上传
数据库文件,不要删除,无密码,可打开查看
附件超过3M了,只能分成两部分了
【

2024-11-3 16:46 上传
点击文件名下载附件
2024-11-3 16:47 上传
点击文件名下载附件
前言
最近想要把电脑上的一些文件夹隐藏掉,基本上实现看不见、打不开就行了,看了一下网上现有的软件,实现起来基本上有如下几种:
1、真正的对文件夹里的所有内容进行加密,时间上花费太大,使用的时候还需要解密了,这不是咱需要的
2、对文件夹改图标或畸形文件夹来实现隐藏
3、通过文件acl来实现禁止对文件夹的访问
4、还有一些咱也不知道原理的,但看上去功能一般,偏偏还收费。
5、使用Bitlocker,但这个只能对分区,不能对文件夹,并且初始化时非常慢
综合以上,决定自己手写一个简单的,不需要对文件加密,只需要对一般水平的人隐藏,并且就算显示了隐藏,也禁止被访问到就可以了,那就使用文件acl来实现吧,acl本质上不能加密码访问,软件加密码只是为了防止别人知道你隐藏了哪些文件夹而已,所以就没有使用密码。
第三方引用
采用c#编写,环境为.net 4.7,引用了miniExcel,用于加载和保存你设置好的文件夹列表,免得下次打开时找不到已经隐藏的文件夹。
如果软件好用的话,以后将使用sqlite数据库来保存文件夹列表和目录,目前就将就一下吧。
folderpath.xlsx 文件,用于存放文件目录和状态
简介
使用起来很简单,目前软件没有密码,打开直接是界面

image.png (13.83 KB, 下载次数: 3)
下载附件
2024-11-1 19:20 上传
就四个按钮,很简单直观,选择一个文件夹,然就可以进行加密或解密了,如果不想使用这个文件夹了,选中后点移除就从软件中去掉了。

image.png (14.66 KB, 下载次数: 2)
下载附件
2024-11-1 19:22 上传

image.png (21.18 KB, 下载次数: 2)
下载附件
2024-11-1 19:22 上传
加锁后的文件就看不到,就算你显示隐藏,也无法打开了。
软件隐藏后可以阻止被系统索引,但无法阻止被everything搜索,并且为了快速简单,只禁止了文件夹访问,里面的文件只要是正确的地址,还是可以打开的。
点击下载【

2024-11-1 19:24 上传
点击文件名下载附件
有兴趣的可以试试源码,自己完善下
[C#] 纯文本查看 复制代码
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)][/align][align=left] [return: MarshalAs(UnmanagedType.Bool)][/align][align=left] static extern bool SetFileAttributes([MarshalAs(UnmanagedType.LPTStr)] string lpFileName, FileAttributes dwFileAttributes);[/align] [align=left] string ExcelPath = "folderpath.xlsx";[/align][align=left] string Title = "文件夹加解密提醒";[/align][align=left] public void Lock(string FolderPath)[/align][align=left] {[/align][align=left] string folderPath = FolderPath;[/align][align=left] FileAttributes attributes = File.GetAttributes(folderPath);[/align] [align=left] // 添加属性以阻止文件夹被索引[/align][align=left] attributes |= FileAttributes.NotContentIndexed;[/align][align=left] SetFileAttributes(folderPath, attributes);[/align] [align=left] File.SetAttributes(folderPath, File.GetAttributes(folderPath) | FileAttributes.Hidden|FileAttributes.System);[/align][align=left] DirectorySecurity directorySecurity = Directory.GetAccessControl(folderPath);[/align][align=left] FileSystemAccessRule fileSystemAccessRule = new FileSystemAccessRule(Environment.UserName, FileSystemRights.FullControl, AccessControlType.Deny);[/align][align=left] directorySecurity.AddAccessRule(fileSystemAccessRule);[/align][align=left] Directory.SetAccessControl(folderPath, directorySecurity);[/align] [align=left] }[/align][align=left] public void UnLock(string FolderPath)[/align][align=left] {[/align][align=left] string folderPath = FolderPath;[/align][align=left] DirectorySecurity directorySecurity = Directory.GetAccessControl(folderPath);[/align][align=left] FileSystemAccessRule fileSystemAccessRule = new FileSystemAccessRule(Environment.UserName, FileSystemRights.FullControl, AccessControlType.Deny);[/align][align=left] directorySecurity.RemoveAccessRule(fileSystemAccessRule);[/align][align=left] Directory.SetAccessControl(folderPath, directorySecurity);[/align][align=left] File.SetAttributes(folderPath, File.GetAttributes(folderPath) & ~FileAttributes.Hidden&~FileAttributes.System);[/align][align=left] }


















































































查看全部评分