AI智能
改变未来

C#中修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限

精选30+云产品,助力企业轻松上云!>>>

写在前面

在windows系统中,c盘中的目录权限比较高,有时制作安装包的时候,默认的安装路径就是在c盘,但对运行可执行文件,有时候需要为其添加完全控制权限,或者读写权限。这里将当时的解决方案记录一下。

代码实现

在C盘添加一个文件夹,并在文件夹内部,新建一个文本文件,如图所示:

该文件夹下,新建一个文本文件,如图所示:

为文件添加完全控制权限:

/// <summary>/// 为文件添加users,everyone用户组的完全控制权限/// </summary>/// <param name=\"filePath\"></param>static void AddSecurityControll2File(string filePath){//获取文件信息FileInfo fileInfo = new FileInfo(filePath);//获得该文件的访问权限System.Security.AccessControl.FileSecurity fileSecurity = fileInfo.GetAccessControl();//添加ereryone用户组的访问权限规则 完全控制权限fileSecurity.AddAccessRule(new FileSystemAccessRule(\"Everyone\", FileSystemRights.FullControl, AccessControlType.Allow));//添加Users用户组的访问权限规则 完全控制权限fileSecurity.AddAccessRule(new FileSystemAccessRule(\"Users\", FileSystemRights.FullControl, AccessControlType.Allow));//设置访问权限fileInfo.SetAccessControl(fileSecurity);}

为文件夹添加完全控制权限

/// <summary>///为文件夹添加users,everyone用户组的完全控制权限/// </summary>/// <param name=\"dirPath\"></param>static void AddSecurityControll2Folder(string dirPath){//获取文件夹信息DirectoryInfo dir = new DirectoryInfo(dirPath);//获得该文件夹的所有访问权限System.Security.AccessControl.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);bool isModified = false;dirSecurity.ModifyAccessRule(AccessControlModification.Add, everyoneFileSystemAccessRule, out isModified);dirSecurity.ModifyAccessRule(AccessControlModification.Add, usersFileSystemAccessRule, out isModified);//设置访问权限dir.SetAccessControl(dirSecurity);}

总结

在操作文件的时候,还是比较简单的,不过文件夹就比较复杂了,涉及是否要继承的问题。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » C#中修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限