按钮1是打开一个文件,按钮2是读按钮1打开的那个文件,并解析字符串重新生成一个新的文件
现在的filepath,我创建的。直接就去创建新的了,怎么不能指定到打开的ofd.FileName,去打开的那个文件读呢?
在红色部分我直接用ofd.FileName,提示我是非法的路径。
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "(*.*)|*.*";
ofd.RestoreDirectory = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
textBox6.Text = ofd.FileName;
FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read);
try
{
ofd.OpenFile();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
finally
{
fs.Close();
}
}
}
private void button2_Click(object sender, EventArgs e)
{
if (!(Directory.Exists(@"D:\temp")))
{
Directory.CreateDirectory(@"D:\temp");
}
string cbz = "CQD";
string s = dateTimePicker2.Value.ToString("yyyyMM");
string filePath = @"D:\temp\" + textBox3.Text + "" + s + "" + textBox2.Text + "." + cbz + ".txt";
if (File.Exists(filePath))
{
labelResult.ForeColor = Color.Red;
labelResult.Text = "当前文件已经存在!";
return;
}
OpenFileDialog ofd = new OpenFileDialog();
FileStream fs = new FileStream(filePath, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
StreamReader sr = new StreamReader(fs);
try
{
string line = sr.ReadLine();
while (line != null)
{
string[] bit = line.Split(',');
string a = bit[2].ToString(); //时间
string b = bit[3].ToString(); //时间指示符
string c = bit[4].ToString(); //纬度
string d = bit[5].ToString(); //南北半球标示
string e1 = bit[6].ToString(); //经度
string f = bit[7].ToString(); //东西半球标示
string g = bit[8].ToString(); //航速
string h = bit[9].ToString(); //航向
string i = bit[21].ToString(); //真风速
string j = bit[22].ToString(); //真风向
string k = bit[26].ToString(); //气压
string l = bit[28].ToString(); //气温
string m = bit[30].ToString(); //湿度
listBox1.Text = a + b + c;
}
sw.Write(listBox1.Text);
sw.Flush();
labelResult.ForeColor = Color.Green;
labelResult.Text = "写入数据完成!";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
finally
{
sw.Close();
fs.Close();
}
------解决思路----------------------
你两个按钮的功能写的感觉有点问题。按钮1,选择文件,文件选择之后直接保存文件名就好了
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "(*.*)
------解决思路----------------------
*.*";
ofd.RestoreDirectory = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
textBox6.Text = ofd.FileName;
}
}
按钮2楼主的代码完全没看懂
------解决思路----------------------
FileStream fs = new FileStream(filePath, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
StreamReader sr = new StreamReader(fs);
你的打开模式是创建,然后你又读它,又写它,这是闹哪出呢,一个刚创建的文件能有什么内容供你读取?