This is a recursive function I wrote that returns an ArrayList of the file names in a folder. This was written in VisualBasic.net 2015.
Private Function recursiveDirectorySearch(ByVal SearchDirectory As String, ByRef Optional SearchPattern As String = "*.pdf") As ArrayList
Dim Directory, CurrentFile As String
Dim myList As New ArrayList
Try
For Each Directory In System.IO.Directory.GetDirectories(SearchDirectory)
For Each CurrentFile In System.IO.Directory.GetFiles(Directory, SearchPattern)
myList.Add(CurrentFile)
Next
Dim tempArrayList As ArrayList = recursiveDirectorySearch(Directory.ToString, SearchPattern.ToString)
For Each tempFile As String In tempArrayList
myList.Add(tempFile)
Next
Next
Return myList
Catch ex As System.Exception
Throw ex
End Try