Экспорт списка древовидной структуры в текстовый файл в C#

У меня есть древовидное представление, и я хочу экспортировать родительские узлы древовидного представления, дочерние элементы в файл .txt. но когда я экспортирую файл .txt, формат выглядит очень плохо. Я нашел эту тему, но она мне не помогла. Есть другой способ?

Сохранение содержимого древовидной структуры в файл и загрузка позже

Я хочу, чтобы это понравилось в файле .txt

  1. Основная папка
    • Подпапка
      • .docx или .zip файл
      • .docx или .zip файл 2
    • Подпапка 2
      • .txt файл

но в моем .txt файле вот так.

ÿÿÿÿ WSystem.Windows.Forms, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089 ›System.Collections.Generic.List`1 [[System.Windows.Forms.TreeNode, System.Windows.Forms, Version = 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 System. 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());
        }
    }
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
1 277
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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);
    }

Tree View in FormTree View Saved in .txt File

зачем ссылаться на StringBuilder? это еще не ссылочный тип StringBuilder?

Mihir Dave 31.10.2018 13:06

Спасибо за вашу помощь. это работает для меня. Я добавляю эту строку для вашего кода. Есть короткий путь? foreach (TreeNode childNode в rootNode.Nodes) {if (childNode.Level == 1) {buffer.Append ("\ t"); } иначе, если (childNode.Level == 2) {buffer.Append ("\ t \ t"); }

Oğuz Özdemir 31.10.2018 13:42

Не смотрел коротким путем. Если в случае, если я встречу какой-либо метод, обновлю ответ. @ OğuzÖzdemir

SH7 31.10.2018 13:45

Другие вопросы по теме