Filling treeview with directory structure. Or Fill treeview with folder structure.
For this purpose we have used recursive procedure.
VB.Net sample code
Imports System.IO
Public Class Form1
Dim strrootpath As String
Private Sub btnmount_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnmount.Click
FolderBrowserDialog1.ShowDialog()
If (My.Computer.FileSystem.DirectoryExists(FolderBrowserDialog1.SelectedPath.ToString) = False) Then
Exit Sub
End If
txtroot.Text = Path.GetFullPath(FolderBrowserDialog1.SelectedPath.ToString).ToString
pathtree.Nodes.Clear()
Dim str1 As String
Dim str2 As String
str1 = Path.GetFullPath(FolderBrowserDialog1.SelectedPath.ToString).ToString
str2 = Path.GetDirectoryName(FolderBrowserDialog1.SelectedPath.ToString).ToString
str1 = str1.Replace(str2 + "\", "")
Dim RootNode = New TreeNode(str1)
pathtree.Nodes.Add(RootNode)
strrootpath = Path.GetDirectoryName(FolderBrowserDialog1.SelectedPath.ToString).ToString
BuildDirectoryTree(RootNode, My.Computer.FileSystem.CombinePath(Path.GetDirectoryName(FolderBrowserDialog1.SelectedPath.ToString).ToString, str1))
End Sub
Private Sub BuildDirectoryTree(ByVal fromNode As TreeNode, ByVal basePath As String)
Dim newDirectory As TreeNode
Dim justTheSubdirectory As String
pathtree.UseWaitCursor = True
For Each oneDirectory As String In My.Computer.FileSystem.GetDirectories(basePath)
justTheSubdirectory = My.Computer.FileSystem.GetName(oneDirectory)
If (fromNode Is Nothing) Then
newDirectory = pathtree.Nodes.Add(justTheSubdirectory)
Else
newDirectory = fromNode.Nodes.Add(justTheSubdirectory)
End If
BuildDirectoryTree(newDirectory, My.Computer.FileSystem.CombinePath(basePath, justTheSubdirectory))
Next oneDirectory
pathtree.UseWaitCursor = False
End Sub
End Class
Explanation:
For this you need button with name btnmount, textbox with name txtroot, folderbrowsedialog with name FolderBrowserDialog1 and treeview with name pathtree.
System.IO Namespace
The System.IO namespace contains types that allow reading and writing to files and data streams, and types that provide basic file and directory support.