MultiColumn Listview项目到文件

时间:2011-10-15 11:28:36

标签: c# winforms file listview file-io

我正在处理我的小应用程序,我需要从listview获取项目并将它们写入txt文件。有谁知道怎么做?请帮帮我。

=============================================== ==================================

例如: 在listview中

Name     | Password
Me       | YesNoYesNo
You      | NoYesNoYEs
Everybody| YESNoYESNo

在档案中:

ME|YesNoYesNo \r\n
You|NoYESNoYES \r\n

...

修改 伙计们,我忘了告诉你我正在使用WPF。遗憾。

3 个答案:

答案 0 :(得分:2)

这是一种老式的方式,并将分隔符包含在文件中:

using (StreamWriter writer = new StreamWriter(@"C:\Desktop\test.txt"))
{
    StringBuilder line = new StringBuilder();
    foreach (ListViewItem item in listView1.Items)
    {
        line.Clear();
        for (int i=0; i<item.SubItems.Count; i++)
        {
            if (i > 0)
                line.Append("|");
            line.Append(item.SubItems[i].Text);
        }
        writer.WriteLine(line);
    }
}

答案 1 :(得分:1)

关于这个...我希望它能帮到你......

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

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

答案 2 :(得分:0)

您可以同时写入行或字节,关闭文件,否则有时更改不会反映:

string tmppath = @".....\temp.txt";
FileStream writefile = new FileStream(tmppath, FileMode.Open, FileAccess.Write);
//StreamWriter sw = new StreamWriter(writefile);//To write line
if (File.Exists(tmppath))
{
    foreach (ListViewItem itm in listView1.Items)
    {
        writefile.Write(uniEncoding.GetBytes(f.Text), 0,uniEncoding.GetByteCount(itm.Text));
        //OR
        //sw.WriteLine(itm.Text);
    }
writefile.Close();
//OR
//sw.Close();