FileFindNext

この関数は FileFindFirst() 関数で始めた検索を続けます。

bool  FileFindNext(
  long      search_handle,        // 検索ハンドル
  string&  returned_filename      // 見つかったファイルまたはサブディレクトリの名称
  );

パラメータ

search_handle

[in]   FileFindFirst()  で取得される検索ハンドル

returned_filename

[out] 次に見つかったファイルまたはサブディレクトリの名称拡張子を含んだファイル名のみが返されます。ディレクトリ及びサブディレクトリは検索フィルタに含まれている場合でも結果に含まれません。

戻り値

成功の場合は true、それ以外の場合は false

例:

//--- スクリプトの起動時に入力パラメータのウィンドウを表示する
#property script_show_inputs
//--- フィルタ
input string InpFilter="*";
//+------------------------------------------------------------------+
//| スクリプトプログラムを開始する関数                                          |
//+------------------------------------------------------------------+
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!");
 }

参照

FileFindFirstFileFindClose