На данный вопрос уже ответили:
Как сделать поиск файлов в деректории с определенным раcширением?
#include <iostream>
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
int main() {
const auto req_ext = ".a";
for (const auto& filename : fs::directory_iterator("/usr/lib")) {
if (!fs::path(filename).extension().compare(req_ext))
std::cout << "file: " << filename << "\n";
}
return 0;
}
Не забудьте указать stdc++fs
в списке библиотек для линковки.
Вариант для CMake:
target_link_libraries(${PROJECT_NAME} PRIVATE
stdc++fs)
UPD.: если Вам по какой-то причине нужны регулярные выражения, то см. код ниже (вариант для linux-based ОС).
#include <iostream>
#include <dirent.h>
#include <regex>
int main() {
dirent* dirp;
std::regex ext_regex("[a-z]+\\.a");
if (DIR *dp = opendir("/usr/lib")) {
while ((dirp = readdir(dp))) {
if (std::regex_match(dirp->d_name, ext_regex)) {
std::cout << dirp->d_name << "\n";
}
}
closedir(dp);
}
return 0;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Гуглиться за 1 минутуВ интеррнете куча информации на этот счет
Подскажите, как более правильнее и элегантнее решить следующую задачу: