我有一个包含 5000 多个子文件夹的目录。我需要在最后一级获取文件夹的名称,即没有子文件夹的子子子...文件夹并将它们列在列表框中。
但是第 1 级子文件夹和第 2...3 级.. 仍然包含子文件夹的不需要列出,只需要列出最后一级子文件夹。
我有一个包含 5000 多个子文件夹的目录。我需要在最后一级获取文件夹的名称,即没有子文件夹的子子子...文件夹并将它们列在列表框中。
但是第 1 级子文件夹和第 2...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