C# 設定檔案夾的存取權限

來源:互聯網
上載者:User

標籤:

/// <summary>        /// 設定檔案夾的ACL        /// </summary>        /// <param name="folderPath">檔案夾路徑</param>        /// <param name="userName">使用者</param>        /// <param name="rights">許可權</param>        /// <param name="allowOrDeny">拒絕訪問</param>        /// <returns></returns>        public static bool SetFolderACL(            string folderPath,             string userName,             FileSystemRights rights,             AccessControlType allowOrDeny)        {            //設定檔案ACL繼承            InheritanceFlags inherits = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit;            return SetFolderACL(folderPath, userName, rights, allowOrDeny, inherits, PropagationFlags.None, AccessControlModification.Add);        }        /// <summary>        /// 設定檔案夾的ACL        /// </summary>        /// <param name="folderPath">檔案夾路徑</param>        /// <param name="userName">使用者</param>        /// <param name="rights">許可權</param>        /// <param name="allowOrDeny">拒絕訪問</param>        /// <param name="inherits">ACL繼承</param>        /// <param name="propagateToChildren">應用於子檔案夾及子檔案</param>        /// <param name="addResetOrRemove">修改類型</param>        /// <returns></returns>        public static bool SetFolderACL(            string folderPath,             string userName,             FileSystemRights rights,             AccessControlType allowOrDeny,             InheritanceFlags inherits,             PropagationFlags propagateToChildren,             AccessControlModification addResetOrRemove)        {            bool result;            //擷取目錄資訊            var folder = new DirectoryInfo(folderPath);            //擷取當前檔案夾ACL            var dSecurity = folder.GetAccessControl(AccessControlSections.All);            //設定新的ACL規則            var accRule = new FileSystemAccessRule(userName, rights, inherits, propagateToChildren, allowOrDeny);             //修改檔案夾ACL            dSecurity.ModifyAccessRule(addResetOrRemove, accRule, out result);            //應用新的ACL規則到檔案夾            folder.SetAccessControl(dSecurity);            //返回結果            return result;        }

下面這樣調用

        var folderPath = System.AppDomain.CurrentDomain.BaseDirectory;        var userName = "Users";        SetFolderACL(folderPath, userName, FileSystemRights.FullControl, AccessControlType.Allow);

C# 設定檔案夾的存取權限

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.