![]() |
Tipp 0124
|
Dateisystem-Browser
|
 |
|
Autor/Einsender: Datum: |
|
Michael Werner 10.06.2006 |
|
Entwicklungsumgebung: |
|
VB.Net 2003 |
Framework: |
|
1.1 |
|
|
Mit einigen wenigen Zeilen Code lässt sich das Dateisystem in einem TreeView-Steuerelement strukturiert anzeigen, um darin zu
navigieren. Mit Hilfe der IO-Methoden Directory.GetLogicalDrives,
Directory.GetDirectories, Path.GetFileName werden in den TreeView-Nodes
alle Laufwerke, Ordner, und Dateien angezeigt.
|
Um das Plus-Zeichen
an jedem Node darzustellen, wird unter jedem Node ein Dummy-Node hinzufügen.
In der jeweiligen TreeNode.Tag-Eigenschaft wird festgehalten und später
abgefragt, ob es sich bei diesem Strukturknoten um einen Ordner oder eine Datei handelt.
|
|
|
Private Const DUMMY As String = "DUMMY"
Private Enum ItemType
Directory = 1
File = 2
End Enum
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
LoadDrivesInTreeView()
End Sub
Private Sub LoadDrivesInTreeView()
TreeView1.Nodes.Clear()
For Each strDrive As String In Directory.GetLogicalDrives()
With TreeView1.Nodes.Add(strDrive)
'Unter jedem Node einen Dummy-Node hinzufügen.
'Dadurch wird das Plus-Zeichen angezeigt.
.Nodes.Add(DUMMY)
End With
Next
End Sub
Private Sub AddFiles(ByVal nod As TreeNode)
Dim strPath As String = nod.FullPath
Dim strFile As String
With nod
For Each strFile In Directory.GetFiles(strPath)
With nod.Nodes.Add(Path.GetFileName(strFile))
.Tag = ItemType.File
End With
Next
End With
End Sub
Private Sub AddFolders(ByVal nod As TreeNode)
Dim strPath As String = nod.FullPath
Dim strDir As String
With nod
For Each strDir In Directory.GetDirectories(strPath)
With nod.Nodes.Add(Path.GetFileName(strDir))
'als Directory in der Tag-Eigenschaft zwischenspeichern
.Tag = ItemType.Directory
' Dummy-Node für das Plus-Zeichen
.Nodes.Add(DUMMY)
End With
Next
End With
End Sub
Private Sub TreeView1_AfterSelect(ByVal sender As Object, ByVal _
e As System.Windows.Forms.TreeViewEventArgs) Handles _
TreeView1.AfterSelect
Try
With e.Node
Select Case .Tag
Case ItemType.File
'Datei öffnen
Dim fi As New FileInfo(.FullPath)
Process.Start(fi.ToString)
Case ItemType.Directory
'Ordner öffnen
Dim di As New DirectoryInfo(.FullPath)
Process.Start(di.ToString)
Case Else
End Select
End With
Catch exp As Exception
MessageBox.Show(exp.Message, Me.Text)
End Try
End Sub
Private Sub TreeView1_BeforeExpand(ByVal sender As Object, ByVal _
e As System.Windows.Forms.TreeViewCancelEventArgs) Handles _
TreeView1.BeforeExpand
Try
'Vor dem Öffnen des Nodes, existierenden Nodes aus der
'Auflistung entfernen. Dadurch verschwindet das Plus-Zeichen,
'falls keine Unterordner/Dateien vorhanden sind.
e.Node.Nodes.Clear()
AddFolders(e.Node)
AddFiles(e.Node)
Catch exp As IOException
Catch exp As Exception
MessageBox.Show(exp.ToString, Me.Text)
End Try
End Sub
|
|
|
|
|
Windows-Version |
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
|
Download (6,8
kB)
|
Downloads bisher: [ 1085 ]
|
|
|