ho risolto, metto la soluzione qui cosi potrebbe servire anche ad altri

codice:
Public Function ProcessDir(ByVal Dir As String) As IList(Of String)
        Dim Files As New List(Of String)

        ' Processa la lista dei files trovati nella directory passata
        Dim fileEntries As String() = Directory.GetFiles(Dir)
        For Each fileName As String In fileEntries
            Files.Add(fileName)
        Next

        ' Processa tutte le directory trovate nella directory passata alla funzione
        Dim subdirectoryEntries As String() = Directory.GetDirectories(Dir)
        For Each subdirectory As String In subdirectoryEntries
            ProcessDir(subdirectory)
        Next

        ProcessDir = Files
    End Function