ファイルのコピーを実行 FileCopy 関数

関数

ファイル関数

FileCopy 関数

 この関数は、指定したフォルダの中にある、指定したファイルをコピーして、指定したフォルダにペーストします。

 コピー元、ペースト先のフォルダは 2つのみで、引数②と④でコピー元とペースト先のフォルダを設定します。その際、ファイル名を変更することもできます。また、コピー元とペースト先のファイル名が同じで、引数④に「FILE_REWRITE」を選択していた場合、コピー元のファイルで上書きされます。

 指定できる 2つのフォルダは 、
① …\Terminal\〇〇〇\MQL4\Files
② …\Terminal\Common\Files
です。①の「〇〇〇」はインストールしたMT4の任意の文字列です。

 MQL4でファイル操作を実行するファイルは、セキュリティ上の理由でこれら 2つのフォルダ以外に置くことはできません。

 上記フォルダは、MT4のメニュー「ファイル」→「データフォルダを開く」で展開されたフォルダから、①のフォルダは展開したフォルダの中に「MQL4」フォルダ があるので、その中に「Files」フォルダがあります。②のフォルダは展開したフォルダの1つ上の階層に「Common」フォルダがあるので、その中に「Files」フォルダがあります。

データ型と構成・戻り値

bool FileCopy(①, ②, ③, ④);

 戻り値は、処理が成功した場合は true、それ以外は falseが返されます。

引数 [4]

 FileCopy関数は 4個の引数で構成されます。


引数名データ型単位初期値説明
src_file_nameconst stringコピーするファイル名。
common_flagint引数①のファイルを処理するフォルダの位置。
FILE_COMMON」の時、
…\Terminal\Common\Files フォルダが指定されます。
「FILE_COMMON」以外の時、
…\Terminal\〇〇〇\MQL4\Files フォルダが指定されます。
dst_file_nameconst stringコピー後のファイル名。
違うファイル名を設定した場合、ペースト先のファイル名が変更されます。
mode_flagsintファイルオープニングフラグ。次の 2つのみ設定可能。
「FILE_REWRITE」:ペースト先のフォルダにコピーするファイルと同じファイル名があった場合、上書きします。
「FILE_COMMON」:コピーファイルのペースト先に「…\Terminal\Common\Files」フォルダが指定されます。
「FILE_REWRITE」と「FILE_COMMON」以外を設定した場合は、コピーファイルのペースト先に「…\Terminal\〇〇〇\MQL4\Files」フォルダが指定されます。

使用例

FileCopy関数によるファイルのコピー

 FileCopy関数を使って指定したフォルダのファイルをコピー および コピーしたファイルの名前の変更をします。

 コピー元 および ペースト先のフォルダを次のようにします。
「MQL4ファイルフォルダ」: …\Terminal\〇〇〇\MQL4\Files
「共通ファイルフォルダ」:…\Terminal\Common\Files

処理内容

①「MQL4ファイルフォルダ」の「mql1.csv」ファイルをコピーして「共通ファイルフォルダ」へペーストします。その際、ファイル名を「common1.csv」に変更します。

②「共通ファイルフォルダ」の「common2.csv」ファイルをコピーして「MQL4ファイルフォルダ」へペーストします。その際、ファイル名を「mql2.csv」に変更します。

③「共通ファイルフォルダ」の「common3.csv」ファイルをコピーして「MQL4ファイルフォルダ」へペーストします。その際、ファイル名を「mql3.csv」に変更して、既にペースト先フォルダ内に存在する「mql3.csv」ファイルを上書きします。
 

「MQL4ファイルフォルダ」には「mql1.csv」、「mql3.csv」ファイル、
「共通ファイルフォルダ」には「common2.csv」「common3.csv」ファイルが
入った状態にしています。

コード

// FileCopy関数によるファイルのコピー
#property strict
void OnInit() {

bool tf1 = FileCopy("mql1.csv", 0, "common1.csv", FILE_COMMON);            // ①
bool tf2 = FileCopy("common2.csv", FILE_COMMON, "mql2.csv", 0);            // ②
bool tf3 = FileCopy("common3.csv", FILE_COMMON, "mql3.csv", FILE_REWRITE); // ③

Print("ファイルコピーの成否①:", tf1);
Print("ファイルコピーの成否②:", tf2);
Print("ファイルコピーの成否③:", tf3);
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

 処理前後の各フォルダのファイルは次のようになります。処理前のファイルは、それぞれファイルの更新日時が違いますので、処理後のファイルの日付でコピーのみか上書きコピーされているかが分かります。今回の場合「MQL4ファイルフォルダ」の「mql3.csv」ファイルがコピーしたファイルで上書きされていることが分かります。

タイトルとURLをコピーしました