Есть ли стандартный способ выполнить findfirst, findnext с помощью gcc в Linux, используя stl?
Вопрос
Кажется, я не могу найти API _findfirst / findfirst, _findnext / findnext в gcc для Linux, и на самом деле я предпочел бы использовать для этого стандартную библиотеку шаблонов (STL), если она там включена.
Кто-нибудь знает, какой API доступен для перечисления файлов в каталоге Linux для C++ (gcc)?
Решение
Ознакомьтесь с Boost.Filesystem библиотека.
В частности, basic_directory_iterator .
Другие советы
Это не API в стиле C++, но API, который вы не можете найти (соответствующий метод findfirst/findnext в стиле Linux/Unix в стиле DOS/Windows), — это opendir/readdir/closedir.
Основное преимущество использования opendir/readdir/closedir заключается в том, что вам не нужна дополнительная библиотека (она является частью библиотеки C, которую вы уже используете).Фактически, библиотека файловой системы Boost использует opendir/readdir/closedir для получения списка файлов в каталоге.
Использованная литература:
STL пока не имеет функций для перечисления файлов в каталоге. Но у него есть функции для открытия файлов, о которых вы уже знаете.
Помимо Boost.Filesystem, есть также STLSoft