Prendi la directory principale, C:\ (o qualche altra unità a seconda dei casi). Usi la funzione IO.Directory.GetDirectories su di essa per ottenere le sottocartelle e IO.Idrectory.GetFiles per ottenere i files ivi contenuti. Quindi aggiungi tanti nodi quante sono cartelle e files.
Ora, ti suggerisco una cosa. NON calcolare prima tutto l'albero gerarchico delle directory, ci metterebbe troppo tempo. Limitati invece a elencare quelle direttamente dipendenti da C: o altre importanti come Documenti e Desktop: ai nodi di queste cartelle associ un dato valore del Tag (ad esempio True, per distinguerle dai nodi-file). Quando ci si fa click sopra, ti ricavi sottodirectory e sottofile e li aggiungi a quel nodo.
In questo modo risparmi memoria e tempo con il massimo guadagno di efficienza.
L'evento da usare mi sembra di "Click": per rintracciare l'elemento cliccato, basta prendere il nodo selezionato (TreeView.SelectedNodes(0)).
|