Как сохранить содержимое ListView в текстовый файл? - PullRequest
1 голос
/ 14 апреля 2010

Как сохранить содержимое ListView (включая ColumnHeaders) в текстовый файл?

спасибо.

Ответы [ 3 ]

2 голосов
/ 23 ноября 2011

Если вы хотите экспортировать все подпункты, вы должны использовать этот код:

 StringBuilder sb;

 if (listView.Items.Count > 0)
 {
     // the actual data
     foreach (ListViewItem lvi in listView.Items)
     {
         sb = new StringBuilder();

         foreach (ListViewItem.ListViewSubItem listViewSubItem in lvi.SubItems)
         {
             sb.Append(string.Format("{0}\t", listViewSubItem.Text));
         }
         sw.WriteLine(sb.ToString());
     }
     sw.WriteLine();
 }
2 голосов
/ 31 июля 2010

В .NET нет ничего, что могло бы сделать это за вас, вам нужно выполнить работу самостоятельно.

При любом событии, которое приведет к сохранению: откройте файл, переберите содержимое списка, записав текст в файл, а затем закройте файл. Закрытие, конечно, может быть сделано через using:

using (var tw = new StreamWriter(filename)) {
  foreach (ListViewItem item in listView.Items) {
    tw.WriteLine(item.Text); 
  }
}
0 голосов
/ 23 октября 2014

Это должно работать на 100%, я сделал это для моего проекта.Я знаю, что это на 4 года позже, но вот оно.

        private void export2File(ListView lv, string splitter)
        {
            string filename = "";
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Title = "SaveFileDialog Export2File";
            sfd.Filter = "Text File (.txt) | *.txt";

            if (sfd.ShowDialog() == DialogResult.OK)
            {
                filename = sfd.FileName.ToString();
                if (filename != "")
                {
                    using (StreamWriter sw = new StreamWriter(filename))
                    {
                        foreach (ListViewItem item in lv.Items)
                        {
                            sw.WriteLine("{0}{1}{2}", item.SubItems[0].Text, splitter, item.SubItems[1].Text);
                        }
                    }
                }
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...