'------------------------------------ 总结,方法2实现起来比较简单,速度也不错,调用方法: dim oCols as new collection
'遍历列出所有目录
Public Function FindDir(ByVal sTmp As String, list As Collection)
Dim myPath, myName As String
Dim i, j As Integer
Dim sPath() As String
myPath = sTmp
myName = Dir(myPath, vbDirectory) ' 找寻第一项。
j = 0
While Len(myName) > 0
'i = 0
If myName <> "." And myName <> ".." Then
' 使用位比较来确定 MyName 代表一目录。
If (GetAttr(myPath & myName) And vbDirectory) = vbDirectory Then
ReDim Preserve sPath(j)
list.Add myName
sPath(j) = myName
'i = i + 1
j = j + 1
End If
End If
myName = Dir
Wend
If j > 0 Then
For i = 0 To UBound(sPath)
FindDir myPath & sPath(i) & "\", list
Next
End If
Erase sPath
End Function
FindDir "C:\", oCols
for i =1 to oCols.Count
debug.print oCols.Item(i)
next
总结,方法2实现起来比较简单,速度也不错,调用方法:
dim oCols as new collection
FindDir "C:\", oCols
for i =1 to oCols.Count
debug.print oCols.Item(i)
next