Hi,
sorry, code's a little longer this time:
Code:
Private Sub Command1_Click()
List1.Clear
Call listfolders("c:\", "*.txt", List1)
End Sub
Sub listfolders(FolderName, FileMask As String, List As ListBox)
Dim sfolders() As String
Dim fldcount As Long
Dim filename As String
On Error Resume Next
If Right$(FolderName, 1) <> "\" Then FolderName = FolderName & "\"
filename = Dir$(FolderName & FileMask)
Do
If Len(filename) > 0 Then
List.AddItem FolderName & filename
DoEvents
filename = Dir$
End If
Loop Until Len(filename) = 0
filename = Dir(FolderName, vbDirectory)
fldcount = 0
ReDim sfolders(0)
Do
If filename <> "." And filename <> ".." Then
If (GetAttr(FolderName & filename) And vbDirectory) = vbDirectory Then
If Err.Number = 0 Then
fldcount = fldcount + 1
If fldcount = 1 Then
ReDim sfolders(1 To fldcount)
Else
ReDim Preserve sfolders(1 To fldcount)
End If
sfolders(fldcount) = FolderName & filename
Else
Err.Clear
End If
End If
End If
filename = Dir
Loop Until Len(filename) = 0
If fldcount > 0 Then
For fldcount = LBound(sfolders) To UBound(sfolders)
listfolders sfolders(fldcount), FileMask, List
Next
End If
End Sub
Roger