0

我有一个包含 5000 多个子文件夹的目录。我需要在最后一级获取文件夹的名称,即没有子文件夹的子子子...文件夹并将它们列在列表框中。

但是第 1 级子文件夹和第 2...3 级.. 仍然包含子文件夹的不需要列出,只需要列出最后一级子文件夹。

4

1 回答 1

3

尝试这样的事情:

Public Sub GetChildFolders(sFolderPath As String)
    For Each dir As String In IO.Directory.GetDirectories(sFolderPath)
        If IO.Directory.GetDirectories(dir).Length > 0 Then
            Call GetChildFolders(dir)
        Else
            ' Add "dir" to the ListBox
        End If
    Next
End Sub

然后用所有开始的父目录调用它:

Call GetChildFolders(startFolder)

编辑:

也许你可以做这样的事情来摆脱文件夹的数量:

Dim allDirs() As String = IO.Directory.EnumerateDirectories(path, "*", System.IO.SearchOption.AllDirectories)

For Each dir As String In AllDirs
    If IO.Directory.GetDirectories(dir).Length = 0 Then
        ' Add "dir" to the ListBox
    End If
Next
于 2013-07-11T11:12:52.910 回答