フォルダ内ファイルを削除 FolderClean 関数

関数

ファイル関数

FolderClean 関数

 この関数は、Filesファルダ内にある指定したフォルダ内にあるファイルを削除します。ファイル以外に空のフォルダであればフォルダも削除します。

 MT4の Filesフォルダは次の 2つの場所にあります。
① …\Terminal\〇〇〇\MQL4\Files
② …\Terminal\Common\Files
です。①の「〇〇〇」はインストールしたMT4の任意の文字列です。
引数で、① または ②のどちらのフォルダの中に新規フォルダを作成するかを選択します。

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

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

データ型と構成・戻り値

bool FolderClean(①, ②);

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

引数 [2]

 FolderClean関数は 2個の引数で構成されます。


引数名データ型単位初期値説明
folder_namestringフォルダ内の全ファイルを削除するフォルダ名。
common_flagint0引数①のフォルダを処理するフォルダの位置。
FILE_COMMON」の時、
…\Terminal\Common\Files フォルダが指定されます。
「FILE_COMMON」以外の時、
…\Terminal\〇〇〇\MQL4\Files フォルダが指定されます。初期値はこちらのフォルダが指定されます。
※初期値があるものは省略可能です。省略した場合、初期値が設定されます。

使用例

FolderClean関数によるフォルダ内ファイルの削除

 FolderClean関数を使って 「test1」フォルダ内にあるファイルを削除します。

 削除するファイルは 「test1」フォルダ内に「test1.txt」ファイルを作成してこれを削除します。比較用に「test2」フォルダ内に「test2.txt」ファイルを作成します。こちらのファイルは削除しません。

 そして「test1」と「test2」フォルダを FolderDelete関数を使って削除します。フォルダ内にファイルが無ければフォルダの削除ができます。

 作業する Filesフォルダは「…\Terminal\〇〇〇\MQL4\Files」で行ないます。

コード

// FolderClean関数によるフォルダ内ファイルの削除
#property strict
void OnInit() {

int handle1 = FileOpen("test1\\test1.txt", FILE_READ | FILE_WRITE | FILE_TXT ); // test1フォルダと中にtest1.txtファイルを作成
int handle2 = FileOpen("test2\\test2.txt", FILE_READ | FILE_WRITE | FILE_TXT ); // test2フォルダと中にtest2.txtファイルを作成

FileClose(handle1);
FileClose(handle2);

FolderClean("test1");

bool tf1 = FolderDelete("test1");
bool tf2 = FolderDelete("test2");

Print("①test1フォルダ削除の成否:", tf1);
Print("②test2フォルダ削除の成否:", tf2);
}

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

結果

 「test1」フォルダは FolderClean関数を使ってフォルダ内のファイルを削除していたのでフォルダの削除ができましたが、「test2」フォルダは、フォルダ内に「text2.txt」ファイルがあるため削除できません。

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