C# 如何解决文件写权限不可访问
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
实际业务中,我们可能会遇到我们的安装包将程序安装在C盘 Windows系统本身有着安全策略,在系统文件夹下是不允许随便对文件进行 要解决以上问题,我们有两种方式:
直接针对文件夹进行权限的方法如下图所示: 只需要添加 这种方法比较简单,我们不过多解说。主要看下我们如何通过软件代码的方式来使之生效。 具体实现如下: /// <summary> ///为文件夹添加users,everyone用户组的完全控制权限 /// </summary> /// <param name="dirPath"></param> static bool AddSecurityControll2Folder(string dirPath) { try { //获取文件夹信息 DirectoryInfo dir = new DirectoryInfo(dirPath); //获得该文件夹的所有访问权限 DirectorySecurity dirSecurity = dir.GetAccessControl(AccessControlSections.All); //设定文件ACL继承 InheritanceFlags inherits = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit; //添加ereryone用户组的访问权限规则 完全控制权限 FileSystemAccessRule everyoneFileSystemAccessRule = new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, inherits, PropagationFlags.None, AccessControlType.Allow); //添加Users用户组的访问权限规则 完全控制权限 //FileSystemAccessRule usersFileSystemAccessRule = new FileSystemAccessRule("Users", FileSystemRights.FullControl, inherits, PropagationFlags.None, AccessControlType.Allow); dirSecurity.ModifyAccessRule(AccessControlModification.Add, everyoneFileSystemAccessRule, out bool isModified); //dirSecurity.ModifyAccessRule(AccessControlModification.Add, usersFileSystemAccessRule, out bool isModified); //设置访问权限 dir.SetAccessControl(dirSecurity); return isModified; } catch (Exception) { return false; } } 注意:执行权限更改时,需要依赖管理员权限,所以我们在修改权限的时候,直接调用以上代码是会抛异常的。 如果我们的应用程序不具备管理员权限,那么我们不应该在应用程序中直接去修改它。我们可以在安装的时候,对它进行权限更改,因为安装的时候,可以以管理权限运行安装。 该文章在 2023/9/10 12:16:44 编辑过 |
关键字查询
相关文章
正在查询... |