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 編輯過 |
關鍵字查詢
相關文章
正在查詢... |