C#:将RTF(文本)文件写入系统驱动器

时间:2014-01-23 02:53:35

标签: c#

我有一个包含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();
}

3 个答案:

答案 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)

检查您的位置。您可能正在尝试写入不存在或受限制的位置