You have an inner loop (
foreach subfolder In subfolders
) but create the name always from the
parentFolder
.
So it should be (untested)
If parentFolder.HasChildren Then
Dim subfolders = parentFolder.SubFolders
For Each subfolder In subfolders
folder.Add(New emailFolder With {.Title = subFolder.Name})
Next
Else
folder.Add(New emailFolder With {.Title = parentFolder.Name})
End If