欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# 如何解決文件寫權(quán)限不可訪問(wèn)

admin
2023年9月10日 12:13 本文熱度 943

實(shí)際業(yè)務(wù)中,我們可能會(huì)遇到我們的安裝包將程序安裝在C盤Program Files目錄下后,有些文件要修改或者新增會(huì)導(dǎo)致拒絕訪問(wèn)的異常。但是我們又不想把數(shù)據(jù)放臨時(shí)文件夾AppData中,那么如何解決這個(gè)問(wèn)題呢?

Windows系統(tǒng)本身有著安全策略,在系統(tǒng)文件夾下是不允許隨便對(duì)文件進(jìn)行操作的,除非是有管理員權(quán)限或者賦予了寫的權(quán)限。

要解決以上問(wèn)題,我們有兩種方式:

  1. 直接給定文件或文件夾,設(shè)置權(quán)限

  2. 安裝的時(shí)候,將需要進(jìn)行寫操作的文件或者文件夾賦予足夠的控制權(quán)限

直接針對(duì)文件夾進(jìn)行權(quán)限的方法如下圖所示:

只需要添加EveryOne用戶,并勾選完全控制,保存即可(也可以添加Users設(shè)置為完全控制)。

這種方法比較簡(jiǎn)單,我們不過(guò)多解說(shuō)。主要看下我們?nèi)绾瓮ㄟ^(guò)軟件代碼的方式來(lái)使之生效。

具體實(shí)現(xiàn)如下:

/// <summary>

///為文件夾添加users,everyone用戶組的完全控制權(quán)限

/// </summary>

/// <param name="dirPath"></param>

static bool AddSecurityControll2Folder(string dirPath)

{

    try

    {

        //獲取文件夾信息

        DirectoryInfo dir = new DirectoryInfo(dirPath);

        //獲得該文件夾的所有訪問(wèn)權(quán)限

        DirectorySecurity dirSecurity = dir.GetAccessControl(AccessControlSections.All);

        //設(shè)定文件ACL繼承

        InheritanceFlags inherits = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit;

        //添加ereryone用戶組的訪問(wèn)權(quán)限規(guī)則 完全控制權(quán)限

        FileSystemAccessRule everyoneFileSystemAccessRule = new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, inherits, PropagationFlags.None, AccessControlType.Allow);

        //添加Users用戶組的訪問(wèn)權(quán)限規(guī)則 完全控制權(quán)限

        //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);

        //設(shè)置訪問(wèn)權(quán)限

        dir.SetAccessControl(dirSecurity);

        return isModified;

    }

    catch (Exception)

    {

        return false;

    }

}

注意:

執(zhí)行權(quán)限更改時(shí),需要依賴管理員權(quán)限,所以我們?cè)谛薷臋?quán)限的時(shí)候,直接調(diào)用以上代碼是會(huì)拋異常的。 如果我們的應(yīng)用程序不具備管理員權(quán)限,那么我們不應(yīng)該在應(yīng)用程序中直接去修改它。我們可以在安裝的時(shí)候,對(duì)它進(jìn)行權(quán)限更改,因?yàn)榘惭b的時(shí)候,可以以管理權(quán)限運(yùn)行安裝。


該文章在 2023/9/10 12:16:44 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved