Descargar MetaTrader 5

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 entera hacia 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:

//+------------------------------------------------------------------+
//|                                            Demo_FolderCreate.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//--- descripción
#property description "El script muestra un ejemplo de utilización de FolderCreate()."
#property description "Un parámetro externo define el directorio para crear carpetas."
#property description "Una vez ejecutado el script, se creará una estructura de carpetas"
 
//--- mostraremos la ventana de parámetros de entrada durante el arranque del script
#property script_show_inputs
//--- el parámetro de entrada define la carpeta en la que trabaja el script
input bool     common_folder=false// la carpeta compartida para todos los terminales
int            flag=0;              // el valor de la bandera para determinar el lugar de ejecución de operaciones con archivos 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string working_folder;
//--- estableceremos el valor de la bandera si el parámetro exteno common_folder==true
   if(common_folder)
     {
      flag=FILE_COMMON;
      //--- buscaremos la carpeta en la que estamos trabajando
      working_folder=TerminalInfoString(TERMINAL_COMMONDATA_PATH)+"\\MQL5\\Files";
     }
   else working_folder=TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Files";
//--- la carpeta que vamos a crear en la carpeta MQL5\Files
   string root="Folder_A";
   if(CreateFolder(working_folder,root,flag))
     {
      //--- crearemos dentro la carpeta hija Child_Folder_B1
      string folder_B1="Child_Folder_B1";
      string path=root+"\\"+folder_B1;          // crearemos el nombre de la carpeta en función de la estructura
      if(CreateFolder(working_folder,path,flag))
        {
         //--- en esta carpeta crearemos 3 carpetas hijas más
         string folder_C11="Child_Folder_C11";
         string child_path=path+"\\"+folder_C11;// crearemos el nombre de la carpeta en función de la estructura
         CreateFolder(working_folder,child_path,flag);
         //--- la segunda carpeta hija
         string folder_C12="Child_Folder_C12";
         child_path=path+"\\"+folder_C12;
         CreateFolder(working_folder,child_path,flag);
 
         //--- la tercera carpeta hija
         string folder_C13="Child_Folder_C13";
         child_path=path+"\\"+folder_C13;
         CreateFolder(working_folder,child_path,flag);
        }
     }
//---
  }
//+------------------------------------------------------------------+
//|  intenta crear la carpeta y muestra los mensajes                      |
//+------------------------------------------------------------------+
bool CreateFolder(string working_folder,string folder_path,int file_flag)
  {
//--- mensaje de depuración   
   PrintFormat("folder_path=%s",folder_path);
//--- intento de crear carpeta respecto a la ruta MQL5\Files
   if(FolderCreate(folder_path,file_flag))
     {
      //--- mostraremos la ruta entera para la carpeta creada
      PrintFormat("Hemos creado la carpeta %s",working_folder+"\\"+folder_path);
      //--- anularemos el código del error
      ResetLastError();
      //--- devolveremos el éxito
      return true;
     }
   else
      PrintFormat("Fallo al crear la carpeta %s. Código del error %d",working_folder+folder_path,GetLastError());
//--- finalización fallida
   return false;
  }

Véase también

FileOpen(), FolderClean(), FileCopy()


Actualizado: 2015.12.03