【问题标题】:Writing a File to the Specified Folder将文件写入指定文件夹
【发布时间】:2015-01-29 09:08:09
【问题描述】:

这个问题与我的其他问题结合在一起: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”类型的第一次机会异常

可能出了什么问题?

【问题讨论】:

  • 在将流写入文件之前应用目录检查。如果目录不存在,则创建目录。
  • 是不是你没有设置txtSave1的值?在那里放一个断点,看看path变量的值是多少。
  • @RePierre,它被设置为用户想要的任何位置。即 C:\temp\test.txt。如果我将鼠标悬停在路径上,它会显示:"C:\\temp\\test.txt\\"
  • @Kevdog777,路径末尾的“\\”可能是您的问题的原因。那些是怎么到那里的?
  • @Kevdog777,很高兴我能帮上忙!

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


【解决方案1】:

你检查过你的路径吗?也许您没有正确转义 \,或者您的路径中有一些无效字符。

【讨论】:

    【解决方案2】:

    我犯了一个菜鸟错误,我忘了说要保存为什么文件。

    using (StreamWriter writer = new StreamWriter(path))
    

    path 等于用户想要的任何值 - 在我的例子中,它被设置为 C:\temp\。我还没有设置SaveFileDialog 保存为任何默认名称。

    【讨论】:

      猜你喜欢
      • 2019-11-26
      • 2013-08-22
      • 1970-01-01
      • 2019-07-23
      • 2012-10-31
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多