Hallo Ben
Mein Code:
Public Class Form2
Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
Dim i As ObjectModel.ReadOnlyCollection(Of String) = My.Computer.FileSystem.GetFiles(e.Node.FullPath)
-> gibt den vollständigen Pfad aller Dateien an
For Each k As String In i
Dim f As IO.FileInfo = My.Computer.FileSystem.GetFileInfo(k)
->Infos über das aktuelle file
Dim item As New ListViewItem(f.Name)
->Ein neues Item für das listview
ListView1.Items.Add(item)
->und hier wird es hinzugefügt
Next
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim drive As ObjectModel.ReadOnlyCollection(Of IO.DriveInfo) = My.Computer.FileSystem.Drives
->Eine Liste von allen Laufwerken
For Each k As IO.DriveInfo In drive
Dim knoten As New TreeNode(k.RootDirectory.FullName)
->ein neuer Knoten für den Treeview
knoten.Nodes.AddRange(unterknoten(k.RootDirectory.FullName))
->fügt alle Ordner der ersten Ebene nach dem Hauptordner ein (‚unterknoten‘)
TreeView1.Nodes.Add(knoten)
->und hier wird der Knoten hinzugefügt
Next
End Sub
Private Sub TreeView1_BeforeExpand(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles TreeView1.BeforeExpand
->sollte ev. auch mit TreeView1.AfterExpand gehen
For Each k As TreeNode In e.Node.Nodes
k.Nodes.Clear() ->löscht alle unterknoten
k.Nodes.AddRange(unterknoten(k.FullPath))
->und fügt sie wieder aktualisiert ein
Next
End Sub
Private Function unterknoten(ByVal pfad As String) As TreeNode()
->die eigene Funktion, um unterknoten hinzuzufügen
Dim hah(-1) As TreeNode
->Das Array, das zurückgegeben wird
Try
->ein Try ist wichtig, denn hier können Exceptions ausgelöst werden
Dim ordner As ObjectModel.ReadOnlyCollection(Of String) = My.Computer.FileSystem.GetDirectories(pfad)
->eine liste aller untergeordneten Ordner
Dim knoten As New TreeNode
For Each f As String In ordner
Array.Resize(hah, hah.Length + 1)
->für einen neuen Knoten brauchts ein neues Element
knoten = New TreeNode (My.Computer.FileSystem.GetDirectoryInfo(f).Name
)
->einfachheitshalber habe ich einen extraknoten definiert, dieser wird zu hah hinzugefügt
hah(hah.Length - 1) = knoten
->und zwar hier
Next
Return hah
Catch
Return hah
End Try
-> dann wird hah zurückgegeben
End Function
End Class
Es gibt allerdings keine Bilder und es ist schwer, diese von dem Explorer zu nehmen. Der Windows Explorer beinhaltet sehr viele informationen
Gruss Beat