Поиск по подкатологам
Есть код
bool find()
{
WIN32_FIND_DATAA fdFindData;
HANDLE hFind;
hFind = FindFirstFileA("C:\\Users\\user\\Desktop\\*", &fdFindData);
while (FindNextFileA(hFind, &fdFindData))
{
printf("%s ", fdFindData.cFileName);
}
FindClose(hFind);
return 1;
}
Но он ищет только файлы в Desktop, как я могу пройтись ещё по подкатологам?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
У
WIN32_FIND_DATAA fdFindData;
есть такое поле - dwFileAttributes, которое показывает, в частности, а не каталог ли это
if (fdFindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {...
так что, встретив каталог, вы можете рекурсивно пройтись в поисках файлов по нему.
С другой стороны, раз у вас C++, то можно воспользоваться такой штукой, как std::filesystem::recursive_directory_iterator и не мучиться.