WinAPI: поиск файлов по маске и получение полного пути

Подскажите как можно решить следующую проблему

  1. пользователь вводит некоторую маску для поиска, например d:\folder\file*.tx*
  2. осуществляется поиск

например:

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() извлекает полный путь и имя указанного файла

→ Ссылка