FileFindNext

Продолжает поиск, начатый функцией FileFindFirst().

bool  FileFindNext(
   long      search_handle,         // handle поиска
   string&   returned_filename      // имя найденного файла или поддиректории
   );

Параметры

search_handle

[in]  Хэндл поиска, полученный функцией FileFindFirst().

returned_filename

[out] Имя следующего найденного файла или поддиректории. Возвращается только имя файла (включая расширение) без указания директорий и поддиректорий, независимо от того, указывались ли они в фильтре для поиска.

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

В случае удачи возвращает true, иначе false.

Пример:

//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
//--- фильтр
input string InpFilter="*";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string file_name;
   int    i=1;
//--- получение хэндла поиска в корне локальной папки
   long search_handle=FileFindFirst(InpFilter,file_name);
//--- проверим, успешно ли отработала функция FileFindFirst()
   if(search_handle!=INVALID_HANDLE)
     {
      //--- в цикле проверим являются ли переданные строки именами файлов или директорий
      do
        {
         ResetLastError();
         //--- если это файл, то функция вернет true, а если директория, то функция генерирует ошибку ERR_FILE_IS_DIRECTORY
         FileIsExist(file_name);
         PrintFormat("%d : %s name = %s",i,GetLastError()==ERR_FILE_IS_DIRECTORY ? "Directory" : "File",file_name);
         i++;
        }
      while(FileFindNext(search_handle,file_name));
      //--- закрываем хэндл поиска
      FileFindClose(search_handle);
     }
   else
      Print("Files not found!");
  }

Смотри также

FileFindFirst, FileFindClose