我有一个包含超过5000个子文件夹的目录....我需要在最终级别获取文件夹的名称....即没有子文件夹的sub-sub-sub ...文件夹将它们列在列表框中。
但是不需要列出仍然包含子文件夹的第1级子文件夹和第2级...第3级......但只列出最后级子文件夹。
请帮我解决这个问题。
答案 0 :(得分: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