# FarRecursiveSearch

Функция `FSF.FarRecursiveSearch` осуществляет рекурсивный поиск файлов.

    void WINAPI FarRecursiveSearch(
      const wchar_t *InitDir,
      const wchar_t *Mask,
      FRSUSERFUNC UserFunc,
      FRSMODE Flags,
      void *Param
    );

### Параметры

InitDir
Указывает на каталог, откуда начинается поиск, например `L"c:\far\plugins"`
Mask
Указывает на маску файлов. Маска файла может быть стандартного Far Manager вида.
UserFunc
Указывает на функцию типа FRSUSERFUNC, которая будет вызываться для каждого найденного файла. Функция должна вернуть `TRUE` для продолжения поиска файлов, или `FALSE` для окончания поиска.
Flags
Указывает на необходимое действие. Может быть следующим (тип FRSMODE):

Флаг | Описание
--- | ---
FRS_RETUPDIR | Если FRS_RECUR установлен, вызывать UserFunc для каждого найденного каталога дважды: при входе в него и при возвращении в родительский каталог.
FRS_RECUR | Поиск заданного файла в дереве каталогов.
FRS_SCANSYMLINK | Позволяет искать файлы в символических связях наравне с обычными подкаталогами.

Param
Указатель на данные пользователя, Far Manager его никак не обрабатывает, просто передаёт в `UserFunc`.

### Возвращаемое значение

См. описание параметра `Flags`

### Замечания

1. Если хотите использовать данные, переданные функции `UserFunc` по окончании поиска, вы должны скопировать эти данные во внутренние переменные.
2. Если флаг `FRS_SCANSYMLINK` не указан, то независимо от настроек Far Manager, символические ссылки обрабатываться не будут.