В С++ 17 (Используйте последнюю Visual Studio Community) есть замечательный способ работы с файловой системой.
https://en.cppreference.com/w/cpp/filesystem/recur...
Пример на той странице уже выводит список в простом текстовом варианте.
https://en.cppreference.com/w/cpp/filesystem/is_di... вам поможет понять, является ли путь директорией.
https://en.cppreference.com/w/cpp/filesystem/recur... отслеживая глубину можно понять когда нужно добавить закрывающий тег для директории.