У меня есть древовидное представление, и я хочу экспортировать родительские узлы древовидного представления, дочерние элементы в файл .txt. но когда я экспортирую файл .txt, формат выглядит очень плохо. Я нашел эту тему, но она мне не помогла. Есть другой способ?
Сохранение содержимого древовидной структуры в файл и загрузка позже
Я хочу, чтобы это понравилось в файле .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());
}
}
Чтобы написать представление в виде дерева в текстовом файле, вы можете выполнить следующий код
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);
}
Спасибо за вашу помощь. это работает для меня. Я добавляю эту строку для вашего кода. Есть короткий путь? foreach (TreeNode childNode в rootNode.Nodes) {if (childNode.Level == 1) {buffer.Append ("\ t"); } иначе, если (childNode.Level == 2) {buffer.Append ("\ t \ t"); }
Не смотрел коротким путем. Если в случае, если я встречу какой-либо метод, обновлю ответ. @ OğuzÖzdemir
зачем ссылаться на StringBuilder? это еще не ссылочный тип StringBuilder?