FolderCreate

Crea una carpeta en el directorio Files (dependiendo del valor de common_flag)

bool  FolderCreate(
   string  folder_name,       // cadena con el nombre de la carpeta a crear
   int     common_flag=0      // zona de alcance
   );

Parámetros

folder_name

[in]  Nombre de la carpeta que hay que crear. Contiene la ruta relativa a la carpeta.

common_flag=0

[in] Bandera que determina la ubicación de la carpeta. Si es common_flag=FILE_COMMON, la carpeta se encuentra en la carpeta compartida de todos los terminales de cliente \Terminal\Common\Files. De lo contrario, la carpeta se encuentra en la carpeta local (MQL5\files o MQL5\tester\files en caso de prueba).

Valor devuelto

Devuelve true en caso de éxito, de lo contrario devuelve false.

Ejemplo:

#property copyright "Copyright 2000-2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//--- descripción
#property description "El script muestra un ejemplo de uso de FolderCreate()."
#property description "El parámetro externo determina la carpeta para la creación de carpetas."
#property description "Después de ejecutar el script, se creará una estructura de carpetas"
 
//--- mostramos la ventana de parámetros de entrada al iniciar el script
#property script_show_inputs
//--- el parámetro de entrada determina la carpeta en la que funciona el script
input bool     common_folder=false// carpeta general de todos los terminales
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- carpeta que crearemos en MQL5\Files
   string root_folder="Folder_A";
   if(CreateFolder(root_folder,common_folder))
     {
      //--- creamos en ella la carpeta hija Child_Folder_B1
      string folder_B1="Child_Folder_B1";
      string path=root_folder+"\\"+folder_B1;          // creamos el nombre de la carpeta teniendo en cuenta la estructura
      if(CreateFolder(path,common_folder))
        {
         //--- en esta carpeta creamos otras 3 carpetas hijas
         string folder_C11="Child_Folder_C11";
         string child_path=root_folder+"\\"+folder_C11;// creamos el nombre de la carpeta teniendo en cuenta la estructura
         CreateFolder(child_path,common_folder);
         //--- segunda carpeta hija
         string folder_C12="Child_Folder_C12";
         child_path=root_folder+"\\"+folder_C12;
         CreateFolder(child_path,common_folder);
 
         //--- tercera carpeta hija
         string folder_C13="Child_Folder_C13";
         child_path=root_folder+"\\"+folder_C13;
         CreateFolder(child_path,common_folder);
        }
     }
//---
  }
//+------------------------------------------------------------------+
//| Intenta crear una carpeta y muestra un mensaje sobre ello        |
//+------------------------------------------------------------------+
bool CreateFolder(string folder_path,bool common_flag)
  {
   int flag=common_flag?FILE_COMMON:0;
   string working_folder;
//--- aclaramos la ruta completa dependiendo del parámetro common_flag
   if(common_flag)
      working_folder=TerminalInfoString(TERMINAL_COMMONDATA_PATH)+"\\MQL5\\Files";
   else
      working_folder=TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Files";
//--- mensaje de depuración  
   PrintFormat("folder_path=%s",folder_path);
//---intentando crear una carpeta relativa a la ruta MQL5\Files
   if(FolderCreate(folder_path,flag))
     {
      //--- mostramos la ruta completa para la carpeta creada
      PrintFormat("Hemos creado la carpeta %s",working_folder+"\\"+folder_path);
      //--- reseteamos el código de error
      ResetLastError();
      //--- ejecutado con éxito
      return true;
     }
   else
      PrintFormat("No se ha logrado crear la carpeta %s. Código de error %d",working_folder+folder_path,GetLastError());
//--- ejecutado sin éxito
   return false;
  }

Véase también

FileOpen(), FolderClean(), FileCopy()