FileMove 関数
この関数は、指定したフォルダの中にある、指定したファイルを移動 および ファイル名を変更することができます。
移動元、移動先のフォルダは 2つのみで、引数②と④で移動元と移動先のフォルダを設定します。その際、ファイル名を変更することもできます。この時、移動先と移動元のフォルダが同じであればファイル名のみを変更することになります。
指定できる 2つのフォルダは 、
① …\Terminal\〇〇〇\MQL4\Files
② …\Terminal\Common\Files
です。①の「〇〇〇」はインストールしたMT4の任意の文字列です。
MQL4でファイル操作を実行するファイルは、セキュリティ上の理由でこれら 2つのフォルダ以外に置くことはできません。
上記フォルダは、MT4のメニュー「ファイル」→「データフォルダを開く」で展開されたフォルダから、①のフォルダは展開したフォルダの中に「MQL4」フォルダ があるので、その中に「Files」フォルダがあります。②のフォルダは展開したフォルダの1つ上の階層に「Common」フォルダがあるので、その中に「Files」フォルダがあります。
データ型と構成・戻り値
bool FileMove(①, ②, ③, ④);
戻り値は、処理が成功した場合は true、それ以外は falseが返されます。
引数 [4]
FileMove関数は 4個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | src_file_name | const string | - | - | 移動 および 名前変更するファイル名。 |
② | common_flag | int | - | - | 引数①のファイルを処理するフォルダの位置。 「FILE_COMMON」の時、 …\Terminal\Common\Files フォルダが指定されます。 「FILE_COMMON」以外の時、 …\Terminal\〇〇〇\MQL4\Files フォルダが指定されます。 |
③ | dst_file_name | const string | - | - | 移動後のファイル名。 違うファイル名を設定した場合、ファイル名が変更されます。 |
④ | mode_flags | int | - | - | ファイルオープニングフラグ。次の 2つのみ設定可能。 「FILE_REWRITE」:移動先のフォルダに移動するファイルと同じファイル名があった場合、上書きします。 「FILE_COMMON」:ファイルの移動先に「…\Terminal\Common\Files」フォルダが指定されます。 「FILE_REWRITE」と「FILE_COMMON」以外を設定した場合は、ファイルの移動先に「…\Terminal\〇〇〇\MQL4\Files」フォルダが指定されます。 |
使用例
FileMove関数によるファイルの移動と名前の変更
FileMove関数を使って指定したフォルダのファイルを移動 および ファイル名の変更をします。
移動先 および 移動元のフォルダを次のようにします。
「MQL4ファイルフォルダ」: …\Terminal\〇〇〇\MQL4\Files
「共通ファイルフォルダ」:…\Terminal\Common\Files
処理内容
①「MQL4ファイルフォルダ」の「mql1.csv」ファイルを「common1.csv」ファイル名に変更して「共通ファイルフォルダ」へ移動します。
②「共通ファイルフォルダ」の「common2.csv」ファイルを「mql2.csv」ファイル名に変更して「MQL4ファイルフォルダ」へ移動します。
③「共通ファイルフォルダ」の「common3.csv」ファイルを「mql3.csv」ファイル名に変更して「MQL4ファイルフォルダ」へ移動します。この時、既に「MQL4ファイルフォルダ」に存在する「mql3.csv」ファイルを上書きします。
「MQL4ファイルフォルダ」には「mql1.csv」、「mql3.csv」ファイル、
「共通ファイルフォルダ」には「common2.csv」「common3.csv」ファイルが
入った状態にしています。
コード
// FileMove関数によるファイルの移動と名前の変更
#property strict
void OnInit() {
bool tf1 = FileMove("mql1.csv", 0, "common1.csv", FILE_COMMON);
bool tf2 = FileMove("common2.csv", FILE_COMMON, "mql2.csv", 0);
bool tf3 = FileMove("common3.csv", FILE_COMMON, "mql3.csv", FILE_REWRITE);
Print("ファイル移動の成否①:", tf1);
Print("ファイル移動の成否②:", tf2);
Print("ファイル移動の成否③:", tf3);
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果
処理前後の各フォルダのファイルは次のようになります。処理前のファイルは、それぞれファイルの更新日時が違いますので、処理後のファイルが移動およびファイル名が変わっていることを確認できます。