我的代码应该包含在程序运行后输入的所有用户数据并将其全部放入文本文件中。
以下是目前的代码:
protected void WriteFile(object sender, EventArgs e)
{
FileStream fs = new FileStream(@"C:\Users\4567\MyDocuments\ExporterOutput.txt", FileMode.OpenOrCreate, FileAccess.Write);
TextBox[] tbs = { username, TextBox2, sgml, Path };
StringBuilder sb = new StringBuilder();
foreach (TextBox tb in tbs)
sb.AppendLine(tb.Text);
sb.AppendLine(DropDownList1.SelectedItem.ToString());
sb.AppendLine(DropDownList2.SelectedItem.ToString());
System.IO.File.WriteAllText(@"C:/Users/4567/My Documents/ExporterOutput.txt", sb.ToString());
我尝试运行它,文本文件只显示空白。谁能告诉我我做错了什么,以及是否有更简单的方法将所有文本框信息输出到文本文件。并且以某种格式优先。
以下是您给我的建议的编辑代码:
protected void WriteFile(object sender, EventArgs e)
{
TextBox[] tbs = { username, TextBox2, sgml, Path };
StringBuilder sb = new StringBuilder();
foreach (TextBox tb in tbs)
sb.AppendLine(tb.Text);
sb.AppendLine(DropDownList1.SelectedItem.ToString());
sb.AppendLine(DropDownList2.SelectedItem.ToString());
System.IO.File.WriteAllText(@"C:\\Users\\oZ012D\\My Documents\\ExporterOutput.txt", sb.ToString());
}
答案 0 :(得分:0)
好的,我会在这里做一些猜测。
你的最后一行应该是
System.IO.File.WriteAllText(@"C:\\Users\\4567\\My Documents\\ExporterOutput.txt", sb.ToString());
您正在使用Windows,因此您需要“\”字符,而不是像在Linux上那样使用正斜杠。这是通过在字符串中使用双反斜杠(c#识别为单个反斜杠)来实现的。
另外,尝试摆脱你的第一行。您正在创建文件流,然后不使用或关闭它。我认为开放的FS可能导致问题。
不要担心创建问题,如果文件不存在,WriteAllText()调用将创建该文件,如果文件存在则会覆盖它。
如果有效,请告诉我,对我来说唯一可能不正确的事情就是从下拉菜单中获取文字的方式。