Вы хотите подобие итераторов? Может тогда стоит посмотреть на boost::filesystem?
Маску прохода там тоже можно указать.
Имхо свопить все в память — не разумно, памяти нужно много, при чем каждый раз при запуске — нужно пробежаться по всей файловой системе, а это долго и у вас не будет актуального состояния файловой системы.