我有一个包含richTextBox和Button的程序。单击该按钮后,程序将从richTextBox获取文本并将其保存到存储在字符串变量中的预定义位置。
如果我将此位置更改为我的系统驱动器C驱动器,它将不允许我这样做并抛出System.UnauthorizedAccessException
。
我也是我电脑的管理员。有什么方法可以获得权限或解决这个问题吗?提前谢谢。
我使用以下代码
private void button1_Click(object sender, EventArgs e)
{
string temp = location;
System.IO.StreamWriter file = new System.IO.StreamWriter(temp);
file.WriteLine(this.richTextBox1.Rtf);
file.Close();
}
答案 0 :(得分:2)
尝试将文件直接写入c:
驱动器的根目录经常会导致问题,例如您看到的异常。
尝试将文件存储在其他位置。获取安全文件夹的一个好方法是使用SpecialFolder
枚举:(将其更改为Desktop,MyDocuments或您的案例中可能适用的任何内容)
string temp
= Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "myFile.txt")
System.IO.StreamWriter file = new System.IO.StreamWriter(temp);
考虑到您的更新,请尝试以下方式:
string temp
= Path.Combine(@"C:\Users\MuhammadWaqas\SkyDrive", "myFile.txt");
正如pcnThird建议的那样,您可以将其保存到"myFile.rtf"
并利用文件类型,假设您打算打开文件并阅读应用程序之外的内容。
答案 1 :(得分:1)
您必须指定文件名而不是文件夹,尝试将位置更改为“C:\ Users \ MuhammadWaqas \ SkyDrive \ test.txt”
答案 2 :(得分:0)
检查您的位置。您可能正在尝试写入不存在或受限制的位置