1. 程式人生 > >c#怎麼解決System.UnauthorizedAccessException異常

c#怎麼解決System.UnauthorizedAccessException異常

問題描述

最近複習c#檔案操作,在用 File.AppendAllText((string path, string contents)方法往一個檔案寫一段字串的時候出現了“System.UnauthorizedAccessException”型別的未經處理的異常 。疑難答問提示是:如果您要訪問某個檔案,請確保該檔案不是自讀。

程式碼:

using System;
namespace Project2048
{
    class Program
    {
        static void Main(string[] args)
        {
            FileInfo fileInfo1 = new
FileInfo("555.txt");//該檔案是存在的 string str = "hello"; File.AppendAllText(fileInfo1.DirectoryName, str); Console.ReadKey(); } } }

System.UnauthorizedAccessException解析
在VS預設的解釋是: path 指定了一個只讀檔案。- 或 -在當前平臺上不支援此操作。- 或 -path 指定了一個目錄。- 或 -呼叫方沒有所要求的許可權。
疑惑

FIleInfo類例項化,預設的的只讀屬性是false,也就是說。可以進行讀寫的,怎麼會出System.UnauthorizedAccessException”

錯誤?

經過仔細尋找發現問題是fileInfo1.DirectoryName,這個方法是獲取檔案的目錄,並不是到當前檔案。使用fileInfo.Name就可以了
程式碼:

using System;
namespace Project2048
{
    class Program
    {
        static void Main(string[] args)
        {
            FileInfo fileInfo1 = new FileInfo("555.txt");//該檔案是存在的
            string str = "hello";
            File.AppendAllText(fileInfo1.Name, str);
            Console.ReadKey();
        }

    }
}