treenode Objekt - Darstellung der Verzeichnisse
-
Hallo,
Ich stelle einen Verzeichnisbaum in einer TreeView dar. Nun möchte ich die Darstellung so modifizieren, dass ich im TreeView nur die Pfade ab einem bestimmten Verzeichnis dargestellt bekomme.
Also nicht z.B.: c:\files\sonstiges\bla\v1 sondern nur bla\v1 soll im TreeView dargestellt werden.
Wie kann man das realisieren??
Danke für eure Hilfe.
Gruß Oli
-
Du machst jetzt einen Witz oder soll dir direkt jemand dein Programm schreiben? Du musst dich Wohl oder Übel ein wenig mit dem Stückchen Quellcode beschäftigen um ihn zu verstehen.
http://www.c-plusplus.net/forum/viewtopic-var-t-is-125766.html
Guck dir mal genau an wo der Name in die TreeView geflummt wird. Stichwort DirectoryInfo.
mfg
Hellsgore
-
Hi Hellsgore,
nochmals Danke für die Hilfe gestern,
mit
treeNode.Nodes.Add(this.GetDirectories(directoryInfo.FullName));
wird ja der komplette Pfad in die treeView geadded. Die Frage ist jetzt ob es eine Methode gibt for dem adden diesen Fullname in ein StringArray zu zerlegen und dann eben immer das letzte Element dieses Arrays in die treeview zu adden.
Danke Oli
-
Servus,
das ist mal ne anständige Frage
Schaue dir einfach mal die Klasse DirectoryInfo an.
Wir nehmen den Quellcode und schauen mal wo er dem Node den Namen gibt:
private TreeNode GetDirectories(string directory) { TreeNode treeNode = new TreeNode(directory); // <<< treeNode.Tag = directory; DirectoryInfo[] directoryInfos = new DirectoryInfo(directory).GetDirectories(); foreach (DirectoryInfo directoryInfo in directoryInfos) { treeNode.Nodes.Add(this.GetDirectories(directoryInfo.FullName)); } return treeNode; }
> TreeNode treeNode = new TreeNode(directory);
Genau da.. Der Parameter "directory" ist zugleich der Name des Nodes.
Jetzt kann man sowas machen:
private TreeNode GetDirectories(string directory) { TreeNode treeNode = new TreeNode(new DirectoryInfo(directory).Name); //<<< treeNode.Tag = directory; DirectoryInfo[] directoryInfos = new DirectoryInfo(directory).GetDirectories(); foreach (DirectoryInfo directoryInfo in directoryInfos) { treeNode.Nodes.Add(this.GetDirectories(directoryInfo.FullName)); } return treeNode; }
Dann bekommst du deinen Verzeichnisnamen. Du kannst den string natürlich auf einfach bis auf das letzte "/" splitten und die letzten Zeichen auswerten. Führt zum gleichen Ergebnis.
mfg
Hellsgore
-
Hi Hellsgore,
danke für Dein Bemühen. Die Lösung hatte ich auch schon, nur hab ich des Problem, dass ich die Filnames später in einem DataGrid anzeigen möchte und da hab ich des Problem, dass dann der Node in der TreeView nur noch den letzten Verzeichnisnamen enthält und nicht mehr den kompletten Pfad. Es geht mir eigentlich nur um die Anzeige im TreeView. Der Pfad soll so erhalten bleiben. Ich kenne halt nur die StringToKenizer Funktion von Java, damit wär´s kein Stress aber bei J# hab ich des bisher noch net gefunden.
Welche Funktion kann denn des??Danke Oli
-
Hi nochmals,
habs gefunden....
String path = e.Node.Tag.ToString();
Besten Dank nochmals für Deine Hilfe.
Gruß Oli
-
Genau