c#怎麼解決System.UnauthorizedAccessException異常
阿新 • • 發佈:2019-02-13
問題描述
最近複習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();
}
}
}