для си/си++ есть функция findfirst() которая получает шаблон, например строку "*.*" и проводит поиск первого совпадающего с шаблоном элемента каталога (файла или подкаталога). Затем вызывают findnext() и продолжают ее вызывать пока она возвращает положительный результат. При этом функции заполняют информацией структуру, в которой оказывается имя, длина, атрибуты, время создания файла и т.п.
надо, в общем случае, проверять является ли очередной найденный элемент каталога файлом или каталогом и, в этом случае, рекурсивно вызывать эту же подпрограмму для найденного подкаталога.
если не пользоваться ф-циями стандартной библиотеки си/си++, тогда на WinAPI32 это выглядит как FindFirstFile() и FindNextFile + FindClose, которые работают точно так же как и рантайм библиотеки си/си++
|