Есть ли стандартный способ сделать findfirst, findnext с gcc на linux, используя stl? - PullRequest
8 голосов
/ 25 октября 2008

Мне не удается найти API _findfirst / findfirst, _findnext / findnext в gcc для Linux, и я бы предпочел использовать для этого Стандартную библиотеку шаблонов (STL), если она там есть.

Кто-нибудь знает, какой API доступен для перечисления файлов в каталоге под Linux для C ++ (gcc)?

Ответы [ 3 ]

11 голосов
/ 25 октября 2008

Это не API в стиле C ++, но API, который вы не находите (корреспондент Linux / Unix для DOS / Windows-style findfirst / findnext) - opendir / readdir / closedir.

Основное преимущество использования opendir / readdir / closedir заключается в том, что вам не нужна дополнительная библиотека (это часть библиотеки C, которую вы уже используете). Фактически, библиотека файловой системы Boost использует opendir / readdir / closedir, чтобы получить список файлов в каталоге.

Ссылки:

10 голосов
/ 25 октября 2008

Ознакомьтесь с библиотекой Boost.Filesystem .

В частности, basic_directory_iterator .

1 голос
/ 25 октября 2008

STL пока не имеет функций для перечисления файлов в каталоге. Но у него есть функции для открытия файлов, о которых вы уже знаете.

Помимо Boost.Filesystem, есть также STLSoft

...