Hi Leute,
ich bräuchte mal ein bisschen Hilfe bzw. einen Wink mit einem großen Zaunpfahl:
Hab ein Array mit Dateien (Pfad + Dateiname + Endung).
Möchte das ganze im Treeview darstellen. Hab versucht jeden string zu splitten und dann die Nodes hinzuzufügen.
Nun hab ich aber das Problem dass die Pfade so aussehen können:
C:\baum\ast\blatt.txt
C:\ast\baum\blatt.txt
hier sollte es 2 Haupt-Nodes geben: baum und ast.
Wie prüfe ich ob es die Node und Unternodes schon gibt?
Hab hier im Forum und Google schon alles durchgeschaut aber nix gefunden.
Wäre über ein Snippet o.Ä. sehr dankbar.
Gruß
Cyn
in Yet another FolderTreeview gibts eine Methode GotoDirectory(path), die sucht den Pfad im Treeview, und wenn er nicht vollständig existiert, erstellt sie die notwendigen Nodes.
Der frühe Apfel fängt den Wurm.
Hallo cyntonix,
Hab hier im Forum und Google schon alles durchgeschaut aber nix gefunden.
du hast sicher nicht alles durchgeschaut. Das Problem wurde schon öfter behandelt. Unter anderem in TreeView abhängig vom Verzeichnislevel füllen.
herbivore
Danke erstmal für die Hilfe...
Mit dem Snippet von Dir im anderen Thread funktioniert es (Danke, hab den Thread aber nicht gefunden).
Meine Lösung:
bin schon bisl weiter gekommen. Kurz erweiterte erklärung:
Ich fülle den Treeview aus einem Listview heraus:
TreeNode RootNode = new TreeNode("Root");
tvDateien.Nodes.Add(RootNode);
foreach (ListViewItem livi in liviDateien.Items)
{
string file = livi.SubItems[0].Text + ".ema";
string folder = livi.SubItems[1].Text;
PopulateTreeView(folder, file, RootNode);
}
public void PopulateTreeView(string folder, string file, TreeNode Node)
{
TreeNode FolderNode = new TreeNode(Path.GetFileName(folder));
Node.Nodes.Add(FolderNode);
TreeNode FileNode = new TreeNode(Path.GetFileName(file));
FolderNode.Nodes.Add(FileNode);
}
Jetzt wird aber immer nur die letzte Ebene erzeugt und dort die Datei eingefügt.
Ist ein Ordner 2x vorhanden wird dieser auch 2x angezeigt.
Danke nochmal!
Hallo cyntonix,
das dein Code nicht funktioniert und den beschrieben Effekt aufweist, ist doch kein Wunder. Damit bist du aus meiner Sicht noch keinen Schritt weiter gekommen bzw. kommst auf diesem Weg keinen Schritt weiter. Du musst es halt so machen, wie in dem verlinkten Beitrag beschrieben. Ob die Daten aus einer Datei oder einem ListView kommen, spielt ja keine Rolle. Du hast im Prinzip eine fertige Lösung bekommen und muss sie nur noch verwenden.
herbivore