В небольших и простых задачах я не использую boost, я использую dirent.h, который также доступен для окон:
DIR *dir;
struct dirent *ent;
if ((dir = opendir ("c:\\src\\")) != NULL) {
/* print all the files and directories within directory */
while ((ent = readdir (dir)) != NULL) {
printf ("%s\n", ent->d_name);
}
closedir (dir);
} else {
/* could not open directory */
perror ("");
return EXIT_FAILURE;
}
Это всего лишь небольшой заголовочный файл и делает большинство простых вещей вам нужно без использования большого подхода на основе шаблонов, такого как boost (без обид, мне нравится boost!).
Автором уровня совместимости окон является Тони Ронкко. В Unix это стандартный заголовок.
UPDATE 2017:
В C ++ 17 теперь есть официальный способ перечислить файлы вашей файловой системы: std::filesystem
. Существует отличный ответ от Shreevardhan ниже с этим исходным кодом:
#include
#include
#include
namespace fs = std::filesystem;
int main()
{
std::string path = "/path/to/directory";
for (auto & p : fs::directory_iterator(path))
std::cout << p << std::endl;
}
. Рассмотрите вопрос о его ответе, если вы используете подход C ++ 17.