'添加文件夹Public Sub AddDirectory(ByVal strFatherPath As String, ByVal strPath As String, ByVal nodeFather As TreeNode)Dim iDir As IO.DirectoryDim iDirInfo As IO.DirectoryInfoDim i As IntegerDim node As New TreeNode'先添加本目录,从文件夹路径分析出文件夹名称node.Text = Strings.Replace(strPath, strFatherPath & "\", "", , 1)'为单个节点指定节点未被选中时显示的图标node.ImageIndex = 1'为单个节点指定节点被选中时显示的图标node.SelectedImageIndex = 2nodeFather.Nodes.Add(node)Application.DoEvents()TryDim str() As String = iDir.GetDirectories(strPath)'遍历该目录的子文件夹For i = 0 To str.GetUpperBound(0)AddDirectory(strPath, str(i), node)NextCatch ex As ExceptionDebug.WriteLine(ex.Message)End Trynode = NothingiDir = NothingEnd Sub'然后在按钮的Click事件中添加代码,用于添加树状结构的顶层以及调用遍历子文件的递归过程,详细代码如下:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickDim iDir As IO.DirectoryDim node As New TreeNode'先把C盘添加到树中TreeView1.Nodes.Clear()node.ImageIndex = 0node.Text = "本地磁盘 C:"node.SelectedImageIndex = -1TreeView1.Nodes.Add(node)Dim i As Integer'获取C:盘根目录下的文件夹Dim str() As String = iDir.GetDirectories("C:\")For i = 0 To str.GetUpperBound(0)'调用遍历过程AddDirectory("C:", str(i), node)Nextnode = NothingiDir = NothingEnd Sub