записать данные текстового поля в текстовый файл - PullRequest
1 голос
/ 25 октября 2011

У меня есть код, который должен взять все пользовательские данные, которые были введены после запуска программы, и поместить их в текстовый файл.

Вот код на данный момент:

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());
    }

1 Ответ

0 голосов
/ 25 октября 2011

Хорошо, я собираюсь сделать несколько предположений здесь.

Ваша последняя строка должна быть

System.IO.File.WriteAllText(@"C:\\Users\\4567\\My Documents\\ExporterOutput.txt", sb.ToString());

Вы используете windows, поэтому вам нужен символ "\", а не косая черта, как в Linux. Это достигается наличием двойной обратной косой черты (которую c # распознает как одну обратную косую черту) в вашей строке.

Также попробуйте избавиться от своей первой строки. Вы создаете поток файлов, а затем не используете или не закрываете его. Я думаю, что возможно, что открытая FS вызывает проблемы.

Не беспокойтесь о проблемах создания, вызов WriteAllText () создаст файл, если он не существует, и перезапишет его, если он существует.

Дайте мне знать, если это работает, единственное, что может показаться мне потенциально неправильным, это то, как вы получаете текст из выпадающих меню.

...