FolderDelete 関数
この関数は、Filesファルダ内にある指定したフォルダを削除します。フォルダ内が空でない場合は削除できません。削除するフォルダ内にファイルがある場合は、FolderClean関数を使用してフォルダ内のファイルを削除してからフォルダを削除することになります。
MT4の Filesフォルダは次の 2つの場所にあります。
① …\Terminal\〇〇〇\MQL4\Files
② …\Terminal\Common\Files
です。①の「〇〇〇」はインストールしたMT4の任意の文字列です。
引数で、① または ②のどちらのフォルダの中に新規フォルダを作成するかを選択します。
MQL4でファイル操作を実行するファイルは、セキュリティ上の理由でこれら 2つのフォルダ以外に置くことはできません。
上記①と②のフォルダは、MT4のメニュー「ファイル」→「データフォルダを開く」で展開されたフォルダから、①のフォルダは展開したフォルダの中に「MQL4」フォルダ があるので、その中に「Files」フォルダがあります。②のフォルダは展開したフォルダの1つ上の階層に「Common」フォルダがあるので、その中に「Files」フォルダがあります。
データ型と構成・戻り値
bool FolderDelete(①, ②);
戻り値は、処理が成功した場合は true、それ以外は falseが返されます。
引数 [2]
FolderDelete関数は 2個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | folder_name | string | - | - | 削除するフォルダ名。 |
② | common_flag | int | - | 0 | 引数①のフォルダを処理するフォルダの位置。 「FILE_COMMON」の時、 …\Terminal\Common\Files フォルダが指定されます。 「FILE_COMMON」以外の時、 …\Terminal\〇〇〇\MQL4\Files フォルダが指定されます。初期値はこちらのフォルダが指定されます。 |
使用例
FolderDelete関数によるフォルダの削除
FolderDelete関数を使ってフォルダを削除します。
削除するフォルダは、「test1」と「test2」フォルダを作成して「test2」フォルダ内に「test2.txt」ファイルを作成します。
作業する Filesフォルダは「…\Terminal\〇〇〇\MQL4\Files」で行ないます。
コード
// FolderDelete関数によるフォルダの削除
#property strict
void OnInit() {
FolderCreate("test1"); // test1フォルダを作成
int handle = FileOpen("test2\\test2.txt", FILE_READ | FILE_WRITE | FILE_TXT ); // test2フォルダと中にtest2.txtファイルを作成
FileClose(handle);
bool tf1 = FolderDelete("test1");
bool tf2 = FolderDelete("test2");
Print("①test1フォルダ削除の成否:", tf1);
Print("②test2フォルダ削除の成否:", tf2);
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果
「test2」フォルダは、フォルダ内に「text2.txt」ファイルがあるため削除できません。