トップ  >  リファレンス  >  ファイル関数  >  FileFindFirst
スポンサーリンク
検索
カスタム検索
リファレンスツリー
オススメ
FileFindFirst


FileFindFirst


ファイルやサブディレクトリを指定したフィルタで検索します。


関数書式:
long  FileFindFirst(
   const string   file_filter,          // 検索フィルタ
   string&        returned_filename,    // 見つかったファイル名・サブディレクトリ名
   int            common_flag = 0         // 検索フラグ
   );



■引数
引数名 初期値 I/O 詳細
file_filter - In 検索フィルタ。
"Files"のサブディレクトリ内を検索する場合は、相対パスで指定します。
returned_filename - Out 見つかったファイル名・サブディレクトリ名。
成功した場合、最初に見つかったファイル名またはサブディレクトリ名を返します。
common_flag - In 検索フラグ。
ファイルの場所フラグ。
FILE_COMMONを指定した場合は、共通ディレクトリ。
それ以外の場合は、ローカルディレクトリになります。




■戻り値
検索ハンドルを返します。
検索ハンドルはFileFindNext()関数で使用する事で、次の検索を行う事が出来ます。

検索フィルタに対応するファイル・サブディレクトリが見つからなかった場合は、
INVALID_HANDLEを返します。

検索後、FileFindClose()関数を使用して検索ハンドルを閉じる必要があります。




■備考
セキュリティ上の理由から、ファイル操作はMQL4言語で厳格に制御されます。
ファイルサンドボックス(セキュリティモデル)の外にあるファイルは、MQL4プログラムでファイル操作する事は出来ません。

サンプルソース(スクリプト):
#property strict
#property script_show_inputs

input string InpFilter="*"; // 検索フィルタ

void OnStart(){
  
    string file_name;
    int    i=1;
    long   search_handle;
    int    errorcode;
    
    printf("%sフィルタでローカルディレクトリを検索。",InpFilter);
    search_handle = FileFindFirst(InpFilter,file_name,0); // ローカルディレクトリを検索
    
    if (search_handle != INVALID_HANDLE) {

        do {
            ResetLastError();                  // エラーコードリセット
            FileIsExist(file_name);            // 見つかったファイル名で存在チェック
            errorcode = GetLastError();        // 指定した名前がディレクトリの場合はエラーコード5019を返します

            PrintFormat("%dつ目 : %s名 = %s",i, errorcode==5019 ? "ディレクトリ" : "ファイル" ,file_name);
            i++;

        } while( FileFindNext(search_handle,file_name) == true );
        // 次の検索を行い、見つかったら処理を繰り返す
    
        FileFindClose(search_handle); // ファイルハンドラクローズ
    } else {
        Print("対象ファイル無し");
    }
}


ローカルフォルダの内容



結果:
*フィルタでローカルディレクトリを検索。
1つ目 : ファイル名 = entry_access.bin
2つ目 : ファイル名 = FXCM_ECOFILE.htm
3つ目 : ファイル名 = test_file.txt
4つ目 : ディレクトリ名 = test_folder\


*.txtフィルタでローカルディレクトリを検索。
1つ目 : ファイル名 = test_file.txt





スポンサーリンク



Copyright ©2015 MT4でEA自作しちゃお〜 All Rights Reserved.


Top

inserted by FC2 system