FolderCreate

この関数は、common_flag の値によって、Files ディレクトリ内にフォルダを作成します。

bool  FolderCreate(
  string  folder_name,      // 新しいフォルダの名称
  int    common_flag=0      // 範囲
  );

パラメータ

folder_name

[in] Name of the directory to be created. Contains the relative path to the folder.

common_flag=0

[in]  ディレクトリの場所を決めるフラグ。common_flag=FILE_COMMON の場合、ディレクトリは全てのクライアント端末の共有フォルダ \Terminal\Common\Filesに位置します。その他の場合、ディレクトリはローカルフォルダ(MQL5\Files またはテストの場合 MQL5\Tester\Files)に位置します。

戻り値

成功の場合は true、それ以外の場合は false

注意事項

セキュリティ上の理由から、MQL5 言語ではファイルの扱いは厳しく制御されています。MQL5 手段を用いて操作されるファイルは、ファイルサンドボックスの外に存在することは出来ません。

例:

#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link     "https://www.mql5.com"
#property version   "1.00"
//--- description
#property description "The script shows FolderCreate() application sample."
#property description "The external parameter defines the directory for creating folders."
#property description "The folder structure is created after executing the script"
 
//--- display window of the input parameters during the script's launch
#property script_show_inputs
//--- the input parameter defines the folder, in which the script works
input bool     common_folder=false; // common folder for all terminals
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
 {
//--- folder to be created in MQL5\Files
  string root_folder="Folder_A";
  if(CreateFolder(root_folder,common_folder))
    {
    //--- create the Child_Folder_B1 sub-folder in it
    string folder_B1="Child_Folder_B1";
    string path=root_folder+"\\"+folder_B1;         // create the folder name considering the structure
    if(CreateFolder(path,common_folder))
       {
        //--- create 3 more sub-directories in this folder
        string folder_C11="Child_Folder_C11";
        string child_path=root_folder+"\\"+folder_C11;// create the folder name considering the structure
        CreateFolder(child_path,common_folder);
        //--- second sub-directory
        string folder_C12="Child_Folder_C12";
        child_path=root_folder+"\\"+folder_C12;
        CreateFolder(child_path,common_folder);
 
        //--- third sub-directory
        string folder_C13="Child_Folder_C13";
        child_path=root_folder+"\\"+folder_C13;
        CreateFolder(child_path,common_folder);
       }
    }
//---
 }
//+------------------------------------------------------------------+
//| Try creating a folder and display a message about that           |
//+------------------------------------------------------------------+
bool CreateFolder(string folder_path,bool common_flag)
 {
  int flag=common_flag?FILE_COMMON:0;
  string working_folder;
//--- define the full path depending on the common_flag parameter
  if(common_flag)
     working_folder=TerminalInfoString(TERMINAL_COMMONDATA_PATH)+"\\MQL5\\Files";
  else
     working_folder=TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Files";
//--- debugging message  
  PrintFormat("folder_path=%s",folder_path);
//--- attempt to create a folder relative to the MQL5\Files path
  if(FolderCreate(folder_path,flag))
    {
    //--- display the full path for the created folder
    PrintFormat("Created the folder %s",working_folder+"\\"+folder_path);
    //--- reset the error code
    ResetLastError();
    //--- successful execution
    return true;
    }
  else
    PrintFormat("Failed to create the folder %s. Error code %d",working_folder+folder_path,GetLastError());
//--- execution failed
  return false;
 }

参照

FileOpen()FolderClean()FileCopy()