'Recursively lists the files in the given folder.
'Relative - Whether paths collected are relative to the given folder, or absolute.
Public Sub RecursiveList(Folder As String, Relative As Boolean) As List
Dim res As List
res.Initialize
Dim Root As String = IIf(Relative, Folder, "")
Dim f As String = IIf(Relative, "", Folder)
RecursiveListHelper(Root, f, res)
Return res
End Sub
Private Sub RecursiveListHelper(Root As String, Folder As String, Result As List)
For Each f As String In File.ListFiles(File.Combine(Root, Folder))
Result.Add(File.Combine(Folder, f))
If File.IsDirectory(File.Combine(Root, Folder), f) Then
RecursiveListHelper(Root, File.Combine(Folder, f), Result)
End If
Next
End Sub