簡體   English   中英

System.UnauthorizedAccessException未處理

[英]System.UnauthorizedAccessException was unhandled

我收到了拒絕訪問權限的異常。 我怎樣才能解決這個問題?

這是一個例外:

System.UnauthorizedAccessException未處理HResult = -2147024891 Message =拒絕訪問路徑'c:\\ message.txt'。
來源= mscorlib程序

這是代碼:

    public static void WriteToFile(string s)
    {
        fs = new FileStream("c:\\message.txt",
        FileMode.Append, FileAccess.Write);
        sw = new StreamWriter(fs);
        sw.WriteLine(s);
        sw.Flush();
        sw.Close();
        fs.Close();
    }

編輯:如果我以管理員身份運行vs2012,它是否有效,但有沒有辦法或理由以普通用戶身份執行?

這有效:

    public static void WriteToFile(string s)
    {
        fs = new FileStream(@"C:\Users\KristjanBEstur\Documents\message.txt",
        FileMode.Append, FileAccess.Write);
        sw = new StreamWriter(fs);
        sw.WriteLine(s);
        sw.Flush();
        sw.Close();
        fs.Close();
        File.Delete(@"C:\Users\KristjanBEstur\Documents\message.txt");
    }

雙擊app.manifest文件,如果app.manifest不存在右鍵單擊您的項目,添加 - >新建項目 - >應用程序清單文件然后替換此行

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

有了這個

<requestedExecutionLevel level="requireAdministrator" uiAccess="true" />

它將以管理員權限運行您的應用程序。

如果要訪問根目錄,則可能需要以管理員模式運行項目

您可以通過將其添加到應用清單來完成此操作

<requestedExecutionLevel level="requireAdministrator" uiAccess="true"/>

我不確定所有人可能會拋出UnauthorizedAccessException

但有一個想法......你正試圖直接在c:驅動器中創建一個文件,有時系統策略不允許這樣做。 為了排除故障,請嘗試在您可以訪問的其他位置創建文件,例如“ My Documents

您需要在訪問文件之前將FileFileAtrributes屬性設置為Normal

嘗試這個:

public static void WriteToFile(string s)
    {
        String path=@"c:\message.txt";
        if(File.Exists(path))
        {
        File.SetAttributes(path, FileAttributes.Normal);
        fs = new FileStream(path,
        FileMode.Append, FileAccess.Write);
        sw = new StreamWriter(fs);
        sw.WriteLine(s);
        sw.Flush();
        sw.Close();
        fs.Close();
        }
        else
        {
        MessageBox.Show("File not Found!");
        }
    }

只是為了添加Mujahed的答案(我還不能發表評論),如果您只是想以管理員權限運行,則不需要uiAccess="true" 將此選項設置為true可能會讓您感到頭痛(例如,您可能無法在調試模式下運行項目。)

    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM