Dieses Thema stammt von http://entwickler-forum.de/showthrea...676#post195676
Ich möchte so ein art Bakup Programm schreiben.
Ein TreeView in dem die Kompletten Laufwerk eines Computers abgebildet ist.
Der TreeView hat vor jedem Knoten Checkboxen.
Das der TreeView mit den Lauferksdaten gefüllt wird hab ich hinbekommen.
[highlight=vb.net]
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' abrufen der lokalen Laufwerksangaben
Dim drives() As String = Directory.GetLogicalDrives()
Dim node As TreeNode
For Each drv As String In drives
node = TreeView1.Nodes.Add(drv)
If node.Text = "A:\" Then
node.ImageIndex = 0
node.SelectedImageIndex = 0
Continue For
End If
' alle untergeordneten Verzeichnisse einlesen
AllSubDirectories(node)
' das Laufwerk C: aktivieren
If (drv = "C:\") Then
TreeView1.SelectedNode = node
End If
Next
End Sub
' Hinzufügen der untergeordneten Verzeichnisse eines
' bestimmten Knotens
Private Sub AllSubDirectories(ByVal node As TreeNode)
Dim arrDirInfo() As DirectoryInfo
Dim dirinfo As DirectoryInfo = _
New DirectoryInfo(node.FullPath)
' auftretende Fehler ignorieren
Try
arrDirInfo = dirinfo.GetDirectories()
Catch
Return
End Try
For Each info As DirectoryInfo In arrDirInfo
node.Nodes.Add(info.Name)
Next
End Sub
Private Sub TreeView1_BeforeExpand(ByVal sender As Object, _
ByVal e As TreeViewCancelEventArgs) _
Handles TreeView1.BeforeExpand
For Each node As TreeNode In e.Node.Nodes
AllSubDirectories(node)
Next
End Sub
Private Sub TreeView1_AfterSelect(ByVal sender As Object, _
ByVal e As TreeViewEventArgs) _
Handles TreeView1.AfterSelect
If e.Node.Nodes.Count = 0 Then
AllSubDirectories(e.Node)
End If
End Sub
End Class
[/highlight]
Wenn es ne schönere und kürzere Art gibt, bin ich froh, wenn ihr mir die zeigen könnt.
Nun möchte ich einen Button drücken und die ausgewählten Ordner sammt Unterordner auf ein bestimmtes Laufwerk kopieren. Ordner mit Unterordner kann ich kopieren nur ich krieg das auslesen des TreeView nicht hin.
Ich hoffe ihr könnt mir da mit einem Code beispiel oder gleich die lösung helfen (ich kann es meistens erst richtig verstehen, wenn ich die lösung habe und die dann schritt für schritt durchgehe)
Schon mal vielen dank im vorraus.
Ich möchte so ein art Bakup Programm schreiben.
Ein TreeView in dem die Kompletten Laufwerk eines Computers abgebildet ist.
Der TreeView hat vor jedem Knoten Checkboxen.
Das der TreeView mit den Lauferksdaten gefüllt wird hab ich hinbekommen.
[highlight=vb.net]
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' abrufen der lokalen Laufwerksangaben
Dim drives() As String = Directory.GetLogicalDrives()
Dim node As TreeNode
For Each drv As String In drives
node = TreeView1.Nodes.Add(drv)
If node.Text = "A:\" Then
node.ImageIndex = 0
node.SelectedImageIndex = 0
Continue For
End If
' alle untergeordneten Verzeichnisse einlesen
AllSubDirectories(node)
' das Laufwerk C: aktivieren
If (drv = "C:\") Then
TreeView1.SelectedNode = node
End If
Next
End Sub
' Hinzufügen der untergeordneten Verzeichnisse eines
' bestimmten Knotens
Private Sub AllSubDirectories(ByVal node As TreeNode)
Dim arrDirInfo() As DirectoryInfo
Dim dirinfo As DirectoryInfo = _
New DirectoryInfo(node.FullPath)
' auftretende Fehler ignorieren
Try
arrDirInfo = dirinfo.GetDirectories()
Catch
Return
End Try
For Each info As DirectoryInfo In arrDirInfo
node.Nodes.Add(info.Name)
Next
End Sub
Private Sub TreeView1_BeforeExpand(ByVal sender As Object, _
ByVal e As TreeViewCancelEventArgs) _
Handles TreeView1.BeforeExpand
For Each node As TreeNode In e.Node.Nodes
AllSubDirectories(node)
Next
End Sub
Private Sub TreeView1_AfterSelect(ByVal sender As Object, _
ByVal e As TreeViewEventArgs) _
Handles TreeView1.AfterSelect
If e.Node.Nodes.Count = 0 Then
AllSubDirectories(e.Node)
End If
End Sub
End Class
[/highlight]
Wenn es ne schönere und kürzere Art gibt, bin ich froh, wenn ihr mir die zeigen könnt.
Nun möchte ich einen Button drücken und die ausgewählten Ordner sammt Unterordner auf ein bestimmtes Laufwerk kopieren. Ordner mit Unterordner kann ich kopieren nur ich krieg das auslesen des TreeView nicht hin.
Ich hoffe ihr könnt mir da mit einem Code beispiel oder gleich die lösung helfen (ich kann es meistens erst richtig verstehen, wenn ich die lösung habe und die dann schritt für schritt durchgehe)
Schon mal vielen dank im vorraus.
Comment