Ho una treeview (collocata in un panel di uno splitcontainer) che popolo con la lettura delle cartelle del mio hard-disk.
Ecco il codice :
   Sub LeggiDrive
       Dim Nodo0 = IO.Directory.GetDirectories(drive)
       Dim x, j, k As Integer
       For Each cartella In Nodo0
           Dim attributi = IO.File.GetAttributes(cartella)
           If attributi = IO.FileAttributes.Directory And Not (attributi = IO.FileAttributes.Hidden Or attributi = IO.FileAttributes.System) Then
               TreeView1.Nodes.Add(cartella)
               x += 1
               
               'inizio primo livello
               Dim Nodo1 = IO.Directory.GetDirectories(cartella)
               If Nodo1.Count > 0 Then
                   For Each subcartella In Nodo1
                       attributi = IO.File.GetAttributes(subcartella)
                       If attributi = IO.FileAttributes.Directory And Not (attributi = IO.FileAttributes.Hidden Or attributi = IO.FileAttributes.System Or attributi = 5) Then
                           TreeView1.Nodes(x - 1).Nodes.Add(subcartella)
                           k += 1
                           'secondo livello
                           Dim Nodo2 = IO.Directory.GetDirectories(subcartella)
                           If Nodo2.Count > 0 Then
                               attributi = IO.File.GetAttributes(cartella)
                               If attributi = IO.FileAttributes.Directory And Not (attributi = IO.FileAttributes.Hidden Or attributi = IO.FileAttributes.System) Then
                                   For Each subsubcartella In Nodo2
                                       Try
                                           TreeView1.Nodes(x - 1).Nodes(j).Nodes.Add(subsubcartella)
                                       Catch ex As Exception
                                       End Try
                                       j += 1
                                   Next
                                   j = 0
                               End If
                           End If
                           'fine secondo livello
                           
                       End If
                       k = 0
                   Next
               End If
               'fine primo livello
               
           End If
       Next
   End Sub
End Class
Il problema è che il programma si blocca su questa istruzione : Dim Nodo2 = IO.Directory.GetDirectories(subcartella ,cioè quando si appresta a leggere le cartelle di quel path.
L'errore è il seguente : System.UnauthorizedAccessException: 'Accesso al percorso 'c:\Windows\ServiceState' negato.'
Questo evento NON si verifica se uso una listview. In questo caso, le directories vengono lette ed esposte nella listview e mi danno accesso solo se accetto di accedervi.
Come posso "scavalcare" il System.UnauthorizedAccessException? 
Grazie mille.