WinAPI: поиск файлов по маске и получение полного пути
Подскажите как можно решить следующую проблему
- пользователь вводит некоторую маску для поиска, например
d:\folder\file*.tx* - осуществляется поиск
например:
WIN32_FIND_DATA findData;
HANDLE fileHandle = INVALID_HANDLE_VALUE;
fileHandle = ::FindFirstFile(maskPath.c_str(), &findData);
if (INVALID_HANDLE_VALUE == fileHandle)
return false;
do
{
// не рассматривать папки
if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
continue;
// получить полный путь
} while (::FindNextFile(fileHandle, &findData) != 0);
::FindClose(fileHandle);
и надо получить полный путь найденного файла
В структуре WIN32_FIND_DATA содержится лишь имя файла и это было бы приемлемо, если бы поисковая маска была известна (например path + \*.*), тогда можно было бы получить полный путь самому.
Но как быть в общем случае?
Может лучше вообще уйти от WinAPI в сторону голого stl? Есть же функционал поиска в нем вроде как, хотя бы в последних версиях
Ответы (1 шт):
Автор решения: PRODIGY
→ Ссылка
Функция GetFullPathName() извлекает полный путь и имя указанного файла