Как получить все файлы в данном каталоге, используя C ++ для Windows?
Примечание:Я нашел методы, которые используют dirent.h, но мне нужен более стандартный способ ...
dirent.h
Спасибо
Использование FindFirstFile и связанных функций.Пример:
HANDLE hFind; WIN32_FIND_DATA data; hFind = FindFirstFile("c:\\*.*", &data); if (hFind != INVALID_HANDLE_VALUE) { do { printf("%s\n", data.cFileName); } while (FindNextFile(hFind, &data)); FindClose(hFind); }
А как насчет библиотеки boost: файловая система. Boost.org
Вы должны использовать функцию FindFirstFile ( задокументировано здесь ). Это стандартный (и предпочтительный) способ в Windows , однако он не переносимый. Заголовок dirent.h, который вы нашли, содержит определение стандартных функций POSIX .
FindFirstFile
Полный код приведен в следующем примере: Список файлов в каталоге
Принятый стандарт для C ++ описан в N1975 ISO / IEC TS 18822: 2015, последняя версия N4100 . Ваш компилятор может еще не иметь его, и в этом случае Boost.FileSystem обеспечивает практически то же самое.