VB中如何Dir實現子文件夾的遞歸遍歷?
用Dir是可以實現遞歸調用的,但必須用點特殊的技巧:在遍歷某個文件夾時,如果遇到子文件夾,不要立刻遞歸調用,要先把它存入一個數組中,當整個文件夾遍歷完畢并處理完所有文件后(換句話說就是當本次的所有Dir函數都執行完畢后),再通過循環對數組中的每個子文件夾進行遞歸調用,這樣就不會對Dir函數的運行造成干擾了。
Sub ssdir(p As String) Dim d() As String, f As String, i As Long f = Dir(p & "\*.*", VBDirectory + vbNormal + vbArchive + vbHidden + vbReadOnly + vbSystem) Do Until f = "" If (GetAttr(p & "\" & f) And vbDirectory) <> 0 Then '如果是子文件夾 ReDim Preserve d(i) d(i) = f '子文件夾存入數組 i = i + 1 Else '對文件的處理這里略 End If f = Dir Loop For i = 0 To UBound(d) ssdir p & "\" & d(i) '遞歸調用 NextEnd Sub
下一篇什么是前端服務