【发布时间】: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