codice:
Private Declare Function GetProfilesDirectory Lib "userenv.dll" Alias "GetProfilesDirectoryA" _
    (ByVal lpProfileDir As String, lpcchSize As Long) As Boolean

Private Sub Form_Load()

    Dim sBuffer As String
    Dim sTemp As String
    Dim percorsi As String
    
    sBuffer = String(255, 0)
    GetProfilesDirectory sBuffer, 255
    percorsi = StripTerminator(sBuffer)
    sTemp = Dir(percorsi & "\", vbDirectory)
    Do Until sTemp = ""
        If sTemp <> "." And sTemp <> ".." Then
            Debug.Print sTemp
        End If
        sTemp = Dir()
    Loop
    
End Sub

Function StripTerminator(sInput As String) As String
    Dim ZeroPos As Long
    ZeroPos = InStr(1, sInput, Chr$(0))
    If ZeroPos > 0 Then
        StripTerminator = Left$(sInput, ZeroPos - 1)
    Else
        StripTerminator = sInput
    End If
End Function