Функция рекурсивного поиска файлов с использованием функций WinAPI
void FindRecursive(char *path, char *mask){
WIN32_FIND_DATA finddata;
char p[512], buf[512];
HANDLE hFind;
bool removed;
// ищем файлы
sprintf(p,"%s\\%s",path, mask);
hFind = FindFirstFile(p,&finddata);
if(hFind!=INVALID_HANDLE_VALUE)
{
do
{
// Делаем что-нибудь с найденными файлами
}while(FindNextFile(hFind,&finddata));
}
FindClose(hFind);
// ищем подпапки
sprintf(p,"%s\\*",path);
hFind = FindFirstFile(p,&finddata);
if(hFind!=INVALID_HANDLE_VALUE)
{
do
{
if ((finddata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
if (strcmp(finddata.cFileName,"..") && strcmp(finddata.cFileName,"."))
{
FindRecursive(buf, mask);
}
}
}while(FindNextFile(hFind,&finddata));
}
FindClose(hFind);
}