В std c ++ нет переносимого средства для операций с каталогами.Если у вас есть boost, используйте форсированную файловую систему.В противном случае вы можете посмотреть, как это реализовано в некоторых переносимых библиотеках, таких как Qt, wxWidgets, boost.