如何将ListView内容保存到文本文件?

时间:2010-04-14 06:11:24

标签: c# winforms

如何将ListView内容(包括ColumnHeaders)保存到文本文件?

感谢。

3 个答案:

答案 0 :(得分:2)

.NET中没有任何内容可以帮助您,您需要自己完成这项工作。

在任何触发保存的事件上:打开文件,遍历列表内容,将文本写入文件,然后关闭文件。关闭当然可以通过using

完成
using (var tw = new StreamWriter(filename)) {
  foreach (ListViewItem item in listView.Items) {
    tw.WriteLine(item.Text); 
  }
}

答案 1 :(得分:2)

如果要导出所有子项,则必须使用以下代码:

 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 :(得分:0)

这应该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);
                        }
                    }
                }
            }
        }