#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;
}
|