Рекурсивный поиск файлов на WinAPI

Функция рекурсивного поиска файлов с использованием функций 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);
}

Поблагодарить автора

Оставить комментарий

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>