2013-08-15 2 views
-4

Я получаю доступ к каталогу из моего кросс-платформенного кода C++. Я знаю, что этот каталог имеет три подкаталога, но их имена генерируются случайным образом.Рекурсивно перечислять каталоги, C++

Что я хочу - это список с именами этих каталогов (а не файлов!) В виде типа std :: string. Я бы очень хотел, чтобы избежать использования библиотек, таких как boost или qt, и придерживаться стандартного C++, если это возможно.

+0

Возможно ли Qt? –

+0

Нет функций в C++ (пока) для обработки каталогов и ходов каталогов. Либо используйте кросс-платформенную библиотеку, такую ​​как Boost, либо создавайте собственные классы, которые используют собственные функции каждой платформы. –

+0

файловая система специфична для платформы, вы не можете выполнять такие задачи без сопряжения своей программы с чем-то, что не является переносимым, boost :: filesystem позволит вам выполнять эту задачу при абстрагировании платформы, это большой плюс. – user2485710

ответ

0

Я закатил свой собственный ... эффективно реализуя подход «findFirst» и «findNext». В Windows я использовал _findfirst и _findnext, а результаты _finddata_t можно использовать, чтобы определить, является ли это каталогом или нет (для рекурсии). На платформах * nix я использовал opendir и readdir, а затем использовал stat, чтобы определить, была ли это папка.

+0

Спасибо большое. Эти _finds именно то, что я искал! –

Смежные вопросы