【问题标题】:Why am I getting file access denied trying to make a StreamWriter instance?为什么尝试创建 StreamWriter 实例时文件访问被拒绝?
【发布时间】:2015-12-21 16:09:55
【问题描述】:
string pathDir = Path.GetDirectoryName(Application.LocalUserAppDataPath) + "\\settings";
string settingsFile = "settings.txt";
StreamWriter w;

public Form1()
{
    InitializeComponent();

    if (!Directory.Exists(Path.Combine(pathDir, settingsFile)))
        Directory.CreateDirectory(Path.Combine(pathDir, settingsFile));
    settingsFile = Path.Combine(pathDir, settingsFile);
    w = new StreamWriter(settingsFile, true);

异常上线:

w = new StreamWriter(settingsFile, true);

拒绝访问路径“C:\Users\bout0_000\AppData\Local\Grads_Scripts\Grads_Scripts\settings\settings.txt”

现在我将 StreamWriter 的实例移动到 textBox1_TextChanged 事件:

private void textBox1_TextChanged(object sender, EventArgs e)
        {
            w = new StreamWriter(settingsFile, true);
            w.Write(textBox1.Text);
            w.Close();
        }

我想将我在 textBox1 中输入的文本实时写入文本文件。没有按钮单击确认或其他东西,但实时。当我输入时,它会将其写入文本文件。但是现在我在文本文件中看到的所有内容都是一样的。

【问题讨论】:

  • 您是否在其他东西(例如记事本)中打开了“settings.txt”?
  • 我似乎正在创建一个名为 [...]\Grads_Scripts\settings\settings.txt 的目录,然后尝试将其作为文件写入。
  • 很好,Ryan,对我来说,IMO,你应该把它作为答案发布。

标签: c# .net winforms


【解决方案1】:

您似乎正在创建一个名为[...]\Grads_Scripts\settings\settings.txt 的目录,然后尝试将其作为文件写入。转到目录C:\Users\bout0_000\AppData\Local\Grads_Scripts\Grads_Scripts\settings\,看看是否有一个名为settings.txt 的文件夹。如果是这样,请将其删除并修改您的代码以仅创建父目录。

您应该能够按如下方式更改您的代码:

string pathDir = Path.GetDirectoryName(Application.LocalUserAppDataPath) + "\\settings";
string settingsFile = "settings.txt";
StreamWriter w;

public Form1()
{
    InitializeComponent();

    // Create the parent directory if it doesn't exist
    if (!Directory.Exists(pathDir)) 
        Directory.CreateDirectory(pathDir);
    settingsFile = Path.Combine(pathDir, settingsFile);
    w = new StreamWriter(settingsFile, true);
}

记得将 StreamWriter 包装在 using 语句中(或手动调用 Dispose),以便在完成编写后释放文件资源。

using( w = new StreamWriter(settingsFile, true) ){
    // Write to stream writer
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    相关资源
    最近更新 更多