Found the solution to my last problem.
In the AddNodes procedure I changed:
ftn.PopulateNodesOnDemand = (subDir.GetDirectories().Length > 0)
to be
ftn.PopulateNodesOnDemand = (subDir.GetDirectories().Length > 0) Or (subDir.GetFiles().Length > 0)
Now when a folder doesn't have any folders, but has files, the files are listed.
Thanks for the program, pretty nice.