C#中修改文件或文件夾的權(quán)限,為指定用戶、用戶組添加完全控制權(quán)限
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
寫在前面在windows系統(tǒng)中,c盤中的目錄權(quán)限比較高,有時(shí)制作安裝包的時(shí)候,默認(rèn)的安裝路徑就是在c盤,但對(duì)運(yùn)行可執(zhí)行文件,有時(shí)候需要為其添加完全控制權(quán)限,或者讀寫權(quán)限。這里將當(dāng)時(shí)的解決方案記錄一下。 代碼實(shí)現(xiàn)在C盤添加一個(gè)文件夾,并在文件夾內(nèi)部,新建一個(gè)文本文件,如圖所示: 該文件夾下,新建一個(gè)文本文件,如圖所示: 為文件添加完全控制權(quán)限: /// <summary> /// 為文件添加users,everyone用戶組的完全控制權(quán)限 /// </summary> /// <param name="filePath"></param> static void AddSecurityControll2File(string filePath) { //獲取文件信息 FileInfo fileInfo = new FileInfo(filePath); //獲得該文件的訪問權(quán)限 System.Security.AccessControl.FileSecurity fileSecurity = fileInfo.GetAccessControl(); //添加ereryone用戶組的訪問權(quán)限規(guī)則 完全控制權(quán)限 fileSecurity.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, AccessControlType.Allow)); //添加Users用戶組的訪問權(quán)限規(guī)則 完全控制權(quán)限 fileSecurity.AddAccessRule(new FileSystemAccessRule("Users", FileSystemRights.FullControl, AccessControlType.Allow)); //設(shè)置訪問權(quán)限 fileInfo.SetAccessControl(fileSecurity); } 為文件夾添加完全控制權(quán)限 /// <summary> ///為文件夾添加users,everyone用戶組的完全控制權(quán)限 /// </summary> /// <param name="dirPath"></param> static void AddSecurityControll2Folder(string dirPath) { //獲取文件夾信息 DirectoryInfo dir = new DirectoryInfo(dirPath); //獲得該文件夾的所有訪問權(quán)限 System.Security.AccessControl.DirectorySecurity dirSecurity = dir.GetAccessControl(AccessControlSections.All); //設(shè)定文件ACL繼承 InheritanceFlags inherits = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit; //添加ereryone用戶組的訪問權(quán)限規(guī)則 完全控制權(quán)限 FileSystemAccessRule everyoneFileSystemAccessRule = new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, inherits, PropagationFlags.None, AccessControlType.Allow); //添加Users用戶組的訪問權(quán)限規(guī)則 完全控制權(quán)限 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); //設(shè)置訪問權(quán)限 dir.SetAccessControl(dirSecurity); } 總結(jié)在操作文件的時(shí)候,還是比較簡單的,不過文件夾就比較復(fù)雜了,涉及是否要繼承的問題。 該文章在 2021/1/30 11:29:39 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |