.NET中如何访问被系统保护的文件夹
来源:互联网 发布:linux gtk 编程 编辑:程序博客网 时间:2024/05/17 01:57
Windows中有很多文件夹是受系统保护的,比如System Volume Information,中文名称可以翻译为“系统卷标信息”,这个文件夹里就存储着系统还原的备份信息。对于这类系统资源,应用程序是无法直接访问其中的子目录和文件的,所以必须让Windows认为我们程序的当前访问是安全的,才能让我们访问,这就要用到System.Security.AccessControl命名空间了,它提供了有关安全访问系统资源的方法。
下面是C#写的一个获取受保护文件夹的子目录的函数:
- //注意添加名称空间的引用:using System.Security.AccessControl;
- private DirectoryInfo[] GetDirList(DirectoryInfo dirInfo)
- {
- if (dirInfo == null || !dirInfo.Exists)
- return null;
- DirectoryInfo[] dirInfos = null;
- try
- {
- //一般情况下,按正常方法获取目录列表
- dirInfos = dirInfo.GetDirectories();
- }
- catch { }
- //如果不为空,那么说明目录列表成功,否则需要添加安全访问规则
- if (dirInfos != null)
- return dirInfos;
- //新建账户安全访问规则
- FileSystemAccessRule fsRule = new FileSystemAccessRule(System.Environment.UserName
- , FileSystemRights.Modify, AccessControlType.Allow);
- //添加安全访问规则
- DirectorySecurity dirSecurity = dirInfo.GetAccessControl();
- dirSecurity.AddAccessRule(fsRule);
- dirInfo.SetAccessControl(dirSecurity);
- try
- {
- dirInfos = dirInfo.GetDirectories();
- }
- catch (Exception ex)
- {
- MessageBox.Show("无法访问文件夹:" + dirInfo.FullName + "/n" + ex.Message);
- }
- //移除安全访问规则
- dirSecurity = dirInfo.GetAccessControl();
- dirSecurity.RemoveAccessRule(fsRule);
- dirInfo.SetAccessControl(dirSecurity);
- return dirInfos;
- }
- .NET中如何访问被系统保护的文件夹
- .NET中如何访问被系统保护的文件夹
- .NET中如何访问被系统保护的文件夹
- 如何从Mac系统中访问Windows文件夹
- 如何快速设置Windows XP系统中某个文件夹对某用户的访问权限
- 如何访问一个类的保护变量
- Win7中如何查看受保护的文件,如cookies文件夹
- 系统保护-如何保护好自己的系统
- 如何解决xp文件夹权限,数据库只读,“ASP.NET 未被授权访问所请求的资源”
- C#中手保护的访问
- 在Linux系统中访问 windows系统中共享的文件夹
- 如何修改和访问方法中受保护的实例变量
- 如何显示Mac系统中隐藏的资源库文件夹?
- 如何去掉XP系统中文件夹的只读属性
- 如何保护我们的.NET程序集?
- 如何保护.net 开发的源程序
- 如何保护 .NET 应用的安全?
- JAVA中访问保护
- js实现文本点击复制整理
- Burning
- 深入浅出C# 中文版 图文皆译 第四章 类型和引用 page128
- 我胖了?
- 如何看待编程语言的排名
- .NET中如何访问被系统保护的文件夹
- 跨二级域名的cookie和普通的cookie有什么不同
- java源代码:POI 操作Excel,创建下拉框
- Blog Started!
- 添加到网摘书签代码大全
- 关于CGridCtrl
- 博客暂停更新
- 编译gstreamer相关
- Virtual PC and Dos