【问题标题】:How to save data from listview to a text file如何将列表视图中的数据保存到文本文件
【发布时间】:2011-11-07 13:31:35
【问题描述】:

所以我知道有人问过这个问题,但我有点挣扎。我有一个基本的 Windows 窗体程序,它将 4 个值存储到一个数组中,然后在列表视图中显示它。但现在我有一个额外的按钮,如果我点击它,我只想让它保存存储的值并将其导出到文本文件。 直接从数组中导出会更容易吗?我该怎么做?

提前致谢。

【问题讨论】:

  • 什么样的应用程序? WinForms/WPF/WebForms?添加更多标签以反映上下文
  • 什么数组?打开 StreamWriter 并循环遍历数组可能是最简单的。
  • 抱歉,这是一个 WinForms 应用程序,它是一个字符串数组
  • 大家好,我猜对了!非常感谢您的时间和帮助!我很感激!

标签: c# .net winforms listview


【解决方案1】:
File.WriteAllLines(path, array, Encoding.UTF8);

【讨论】:

  • Error 2 Unrecognized escape sequence 我输入路径时收到此错误?
  • 尝试在路径前加上@,如@"C:\Documents\File.txt"
  • 在路径字符串的开头添加@
  • 好的,我这样做了,但它在运行时会出错,并说访问被拒绝,并且文件未设置为只读。对不起,伙计们,我真的是这个菜鸟。
  • @JohnathanSalmon:这是因为 VS 无权写入此文件。确保文件不在需要管理员权限的文件夹中(尝试在 Documents 文件夹中写入新文件)。
【解决方案2】:
using (TextWriter tw = new StreamWriter(@"C:\listViewContent.txt")) {
    foreach (ListViewItem item in listView.Items) {
        tw.WriteLine(item.Text);
    }
}

【讨论】:

  • 这段代码运行良好,但它只显示第一列的值,即名称。我怎样才能让它显示其他 3 列?
  • 其他 3 列是什么?您的 listView View 属性是否设置为 Details
  • 是的,它设置为详细信息,第一列是姓名(后跟)、姓氏、年龄、会议类型
  • 如何填充您的listView?你使用Item.Tag 属性吗?
【解决方案3】:

以防有人仍然需要它,这只是一个完整的版本@othiel 回答子项

        try
        {
            using (System.IO.TextWriter tw = new System.IO.StreamWriter(@"C:\listViewContent.txt"))
            {
                foreach (ListViewItem item in listView1.Items)
                {
                    tw.WriteLine(item.Text);
                    for (int a = 1; a <= 3; a++ ) //the 3 = number of subitems in a listview 
                    {
                        tw.WriteLine(item.SubItems[a].Text);
                    }
                }
            }
        }
        catch {
            MessageBox.Show("TEXT FILE NOT FOUND");
        }

请务必详细设置 listView1。

【讨论】:

    【解决方案4】:

    现在,有了精美的保存文件对话框! :)

        private void saveButton_Click(object sender, EventArgs e)
        {
            Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
            dlg.FileName = "DumpFile1"; // Default file name
            dlg.DefaultExt = ".txt"; // Default file extension
            dlg.Filter = "Text files (.txt)|*.txt"; // Filter files by extension
    
            // Show save file dialog box
            Nullable<bool> result = dlg.ShowDialog();
    
            // Process save file dialog box results
            if (result == true)
            {
                // Save document
                string filename = dlg.FileName;
    
                File.WriteAllLines(filename, array, Encoding.UTF8); //array is your array of strings
            }
        }
    

    您需要添加参考PresentationFramework。 (在 Solution Explorer 中右键单击 References -> Add Reference,在 .NET 选项卡中选择 PresentationFramework )

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-11
      • 2019-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多