【问题标题】:Export list of treeview to text file in c#在c#中将树视图列表导出到文本文件
【发布时间】:2018-10-31 11:39:47
【问题描述】:

我有一个树视图,我想将树视图的父节点、子节点导出到 .txt 文件。但是当我导出 .txt 文件时,格式看起来很糟糕。 我找到了这个主题,但它对我没有帮助。还有其他方法吗?

Saving content of a treeview to a file and load it later

我想在 .txt 文件中喜欢这个

  1. 主文件夹
    • 子文件夹
      • .docx 或 .zip 文件
      • .docx 或 .zip 文件 2
    • 子文件夹 2
      • .txt 文件

但在我的 .txt 文件中是这样的。

ÿÿÿÿ WSystem.Windows.Forms,版本=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089 ›System.Collections.Generic.List`1[[System.Windows.Forms.TreeNode,System.Windows.Forms,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089]] _items_size_version System.Windows.Forms.TreeNode[] System.Windows.Forms.TreeNode
System.Windows.Forms.TreeNode TextToolTipTextName IsChecked ImageIndexImageKeySelectedImageIndexSelectedImageKey 儿童计数儿童0儿童1儿童2儿童3儿童4儿童5儿童6儿童7儿童8儿童9 儿童10 儿童11 儿童12 儿童13 儿童14 儿童15 儿童16 儿童17 儿童18 儿童19 儿童20 children21UserData System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System .Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode 系统。 Windows.Forms.TreeNode +ASP .NET MVC Yazılımcıların YükseliÅŸi

IC:\Users\asd\Desktop\ASP .NET MVC Yazılımcıların YükseliÅŸi System.Windows.Forms.TreeNode TextToolTipTextName IsChecked ImageIndexImageKeySelectedImageIndexSelectedImageKey ChildCount children0 children1 children2 children3 children4UserData System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode System.Windows.Forms.TreeNode 1-ASP.NET MVC GiriÅŸ ! " # $ % ^C:\Users\asd\Desktop\ASP .NET MVC

这是我的代码

public static void SaveTree(TreeView tree, string filename)
    {
        using (Stream file = File.Open(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\myFile.txt.", FileMode.Create))
        {
            BinaryFormatter bf = new BinaryFormatter();
            bf.Serialize(file, tree.Nodes.Cast<TreeNode>().ToList());
        }
    }

【问题讨论】:

    标签: c# forms winforms


    【解决方案1】:

    要在文本文件中写树视图,可以通过以下代码

        private void button1_Click(object sender, EventArgs e)
        {
            btnCreateTreeData();
        }
    
        private void btnCreateTreeData()
        {
            // create buffer for storing string data
            System.Text.StringBuilder buffer = new System.Text.StringBuilder();
            // loop through each of the treeview's root nodes
            foreach (TreeNode rootNode in treeView1.Nodes)
                // call recursive function
                BuildTreeString(rootNode,buffer);
            // write data to file
            System.IO.File.WriteAllText(@"D:\treeTest.txt", buffer.ToString());
        }
    
        private void BuildTreeString(TreeNode rootNode,System.Text.StringBuilder buffer)
        {
            buffer.Append(rootNode.Text);
            buffer.Append(Environment.NewLine);
            foreach (TreeNode childNode in rootNode.Nodes)
                BuildTreeString(childNode,buffer);
        }
    

    【讨论】:

    • 为什么要引用 StringBuilder?不是 StringBuilder 引用类型吗?
    • 感谢您的帮助。它对我有用。我为您的代码添加了这一行。有没有捷径? foreach(rootNode.Nodes 中的 TreeNode childNode){ if(childNode.Level == 1) { buffer.Append("\t"); } else if(childNode.Level == 2) { buffer.Append("\t\t"); }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    相关资源
    最近更新 更多