Torna al Thread
Private Sub tuaForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dummy.Tag = "dummy"
'Crea i nodi base della TreeView
Dim drivers As String() = Directory.GetLogicalDrives()
'Aggiunge ogni percorso base
For Each driver As String In drivers
Dim added As TreeNode = tuaTreeView.Nodes.Add(driver)
added.Tag = driver
added.Nodes.Add(dummy.Clone())
Next
End Sub
Private Sub tuaTreeView_BeforeExpand(ByVal sender As Object, ByVal e As TreeViewCancelEventArgs) _
Handles tuaTreeView.BeforeExpand
'Se il nodo non è popolato o vi è stato precedentemente un errore...
If e.Node.Nodes.Count = 1 AndAlso _
(e.Node.Nodes(0).Tag = "dummy" OrElse e.Node.Nodes(0).Tag = "errore") Then
Try
'Rimuove il nodo dummy (o quello dell'errore)
e.Node.Nodes.RemoveAt(0)
'ottiene le sottodirectory del nodo
Dim dirs As String() = Directory.GetDirectories(e.Node.Tag)
'Cicla fra le sottodirectory
For Each dir As String In dirs
'Aggiunge il nodo
Dim added As TreeNode = e.Node.Nodes.Add(Path.GetFileName(dir))
added.Tag = dir
'Aggiuge il nodo dummy
added.Nodes.Add(dummy.Clone())
Next
Catch ex As Exception
e.Node.Nodes.Add(ex.Message).Tag = "errore"
End Try
End If
End Sub