Как получить все файлы в данном каталоге с помощью C++ на окнах?
Примечание:
Я нашел методы тем использованием dirent.h
но мне нужен более стандартный путь...
Спасибо
Что насчет библиотеки boost: файловая система. Boost.org
Вы должны использовать функцию FindFirstFile
(документированную здесь). Это стандартный (и предпочтительный) способ в Windows, однако он не является переносимым. Найденный вами заголовок dirent.h
содержит определение стандартных POSIX функций.
Для получения полного кода посмотрите этот пример: Listing the Files in a Directory
Используйте 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);
}
Принятый стандарт для C ++ описан в N1975 ISO / IEC TS 18822: 2015, последний проект - N4100 . Возможно, у вашего компилятора его еще нет, и в этом случае Boost.FileSystem предоставляет по существу то же самое.