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: А переполнение стэка из-за бесконечной рекурсии (перечитывание в каталоге "самого себя" и каталога выше)

→ Ссылка