C++ найти все файлы по заданому расширению, поиск осуществить по всему компьютеру
Платформа Windows, консольное приложение. Пробовала с помощью рекурсии, но выдает ошибку, насколько я понимаю, переполнение стека. В с++ пока плаваю. Помогите, пожалуйста, максимально подробно.
Пример моего решения:
filesystem::path my_path(path);
if (filesystem::exists(my_path) && filesystem::is_directory(my_path)) {
if (is_correct_extension(ext)) {
for (filesystem::recursive_directory_iterator i(path), end; i != end; i++) {
if (!filesystem::is_directory(i->path()) && i->path().extension() == ext) {
fout << i->path() << "\n";
}
}
}
выбивает ошибку про исключение.
Ответы (1 шт):
Автор решения: Sergey Tatarincev
→ Ссылка
если ничего не путаю, filesystem::path в списке вернет помимо всего прочего "каталоги" - "." и ".." (текущий каталог, уровень выше). Добавьте проверку этих значений
UPD: А переполнение стэка из-за бесконечной рекурсии (перечитывание в каталоге "самого себя" и каталога выше)