1. 程式人生 > 其它 >【C# IO操作】C#修改檔案或資料夾的許可權,為指定使用者、使用者組新增完全控制權限

【C# IO操作】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);
        }

程式設計是個人愛好