La funzione Dir utilizza due parametri di cui uno facoltativo.
Quest'ultimo se specificato rappresenta gli attributi del file.
Il tipo vbDirectory specifica le cartelle oltre ai file senza attributi.
Per questo motivo devi effettuare un controllo (dalla guida):
codice:
Dim MyFile, MyPath, MyName
' Restituisce "WIN.INI" se esiste.
MyFile = Dir("C:\WINDOWS\WIN.INI")
' Visualizza i nomi in c:\ che rappresentano directory.
MyPath = "c:\" ' Imposta il percorso.
MyName = Dir(MyPath, vbDirectory) ' Recupera la prima voce.
Do While MyName <> "" ' Avvia il ciclo.
' Ignora la directory corrente e quella di livello superiore.
If MyName <> "." And MyName <> ".." Then
' Usa il confronto bit per bit per verificare se MyName è una directory.
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
Debug.Print MyName ' Visualizza la voce solo
End If ' se rappresenta una directory.
End If
MyName = Dir ' Legge la voce successiva.
Loop