将文件写入指定的文件夹

时间:2015-01-29 09:08:09

标签: c# streamwriter visual-studio-express savefiledialog

这个问题与我的另一个问题相关:Write a text file to a sub-folder

这一次,我有一个程序,它有一个文本文件夹来打开文件,然后从该文件中提取数据。然后我可以通过说保存它来保存它。

private void btnExtract1_Click(object sender, EventArgs e)
{
    btnExtract1.Enabled = false;
    string path = txtSave1.Text;

    string file1;
    using (StreamReader reader = new StreamReader(File.OpenRead(txtFile1.Text)))
    using (StreamWriter writer = new StreamWriter(path))
    {
        while ((file1 = reader.ReadLine()) != null)
        {
            file1 = file1.Replace("\"", string.Empty);
            file1 = file1.Substring(0, 8);

            line_number1 += 1;

            if (line_number1 >= 1)
            {
                writer.WriteLine(file1);
            }
        }
    }
    btnExtract1.Enabled = true;
}

private void btnSave1_Click(object sender, EventArgs e)
{
    DialogResult result = savefile1.ShowDialog();
    txtSave1.Text = savefile1.FileName;
}

不,它没有保存在该文件夹中。事实上,它打破了:

using (StreamWriter writer = new StreamWriter(path))

出现此错误:

  

mscorlib.dll中出现'System.IO.DirectoryNotFoundException'类型的第一次机会异常

可能出现什么问题?

2 个答案:

答案 0 :(得分:0)

你有没有检查你的路径是怎样的?也许你没有正确地逃离\,或者你的路径中有一些无效的字符。

答案 1 :(得分:0)

我犯了一个新手的错误,在那里我忘了说要保存为什么文件。

using (StreamWriter writer = new StreamWriter(path))

path等于用户想要的任何内容 - 在我的情况下,它被设置为C:\temp\。我没有将SaveFileDialog设置为保存为默认名称。