Сохранение объектов поля списка к текстовому файлу

Как я могу сохранить содержание моего listbox объекты к текстовому файлу с помощью a SaveFileDialog?

Я также хочу добавить дополнительную информацию к текстовому файлу и также добавить a MessageBox высказывание, сохраненное, когда это было успешно.

5
задан spajce 3 February 2013 в 00:53
поделиться

4 ответа

это должно получиться.

private void button1_Click(object sender, EventArgs e)
{
    OpenFileDialog f = new OpenFileDialog();

    f.ShowDialog();                 

    ListBox l = new ListBox();
    l.Items.Add("one");
    l.Items.Add("two");
    l.Items.Add("three");
    l.Items.Add("four");

    string textout = "";

    // assume the li is a string - will fail if not
    foreach (string li in l.Items)
    {
        textout = textout + li + Environment.NewLine;
    }

    textout = "extra stuff at the top" + Environment.NewLine + textout + "extra stuff at the bottom";
    File.WriteAllText(f.FileName, textout);

    MessageBox.Show("all saved!");
}
3
ответ дан 14 December 2019 в 08:49
поделиться

SaveFileDialog используется с ShowDialog () , чтобы показать его пользователю, и в случае успеха, используя его OpenFile () , чтобы получить (File) Stream , в который вы пишете. Пример есть на странице msdn .

К ListBox можно получить доступ через его свойство Items , которое представляет собой просто набор элементов в нем.

1
ответ дан 14 December 2019 в 08:49
поделиться

У вас там происходит несколько действий - убедитесь, что вы разделили их, например,

  • Получить содержимое окна списка
  • Добавить информацию
  • Записать файл

Обратите внимание!!! Существует огромное количество исключений, которые вы можете получить при сохранении файла, посмотрите документацию и обработайте их как-нибудь...

// Get list box contents
var sb = new StringBuilder();
foreach (var item in lstBox.Items)
{
    // i am using the .ToString here, you may do more
    sb.AppendLine(item);
}
string data = sb.ToString();

// Append Info
data = data + ????....

// Write File
void Save(string data)
{
    using(SaveFileDialog saveFileDialog = new SaveFileDialog())
    {
        // optional
        saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);

        //saveFileDialog.Filter = ???;

        if (saveFileDialog.ShowDialog() == DialogResult.OK)
        {
            File.WriteAllText(saveFileDialog.Filename);
            MessageBox.Show("ok", "all good etc");
        }
        else
        {
        // not good......
        }
    }
}
0
ответ дан 14 December 2019 в 08:49
поделиться

Сохранить

   // fetch the selected Text from your list
   string textToRight = listBox1.SelectedItem.ToString();  

   // Write to a file       
   StreamWriter sr = File.CreateText(@"testfile.txt");       
   sr.Write(textToRight);
   sr.Close();

Сообщение

   // display Message
   MessageBox.Show( "Information Saved Successfully" ); 
0
ответ дан 14 December 2019 в 08:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: