Zu Virtual TreeView gibts auch (irgendwo dort unter Contributed) ein VirtualShellTree, aber beides ist ja
imho schon weit über die eigentliche Frage hinweg, bzw. übersieht das wichtigste an der Frage.
Zudem ist das kopieren aus einem anderen Control (FileListBox) sowieso recht unschön; zum Auflisten verwendet man
FindFirst,
FindNext und
FindClose. Ersterem übergibt man als Parameter faAnyFile, dann kann man bei jedem Ergebnis überprüfen, ob (Attributes and faDirectory)>0, um festzustellen, ob es ein Verzeichnis oder eine Datei ist.
Ob man diese Ergebnisse dann für ein TListView oder ein TVirtualStringTree oder was auch immer benutzt, ist dann natürlich offen