FolderCreate

A função cria uma pasta no diretório Arquivos (dependendo do valor de common_flag).

bool  FolderCreate(
   string  folder_name,       // String com o nome da nova pasta
   int     common_flag=0      // escopo
   );

Parâmetros

folder_name

[in] O nome do diretório que deseja criar. Contém o caminho relativo para a pasta.

common_flag=0

[in] Bandeira determinando a localização do diretório. Se common_flag=FILE_COMMON, então o diretório está na pasta compartilhada para todos os terminais do cliente \Terminal\Common\Files. Caso contrário, o diretório está em uma pasta local (MQL5\Files ou MQL5\Tester\Files na caso de testes).

Valor do Retorno

Retorna true se bem-sucedida, caso contrário - false.

Observação

Por razões de segurança, o trabalho com arquivos é estritamente controlada na língua MQL5. Arquivos com que as operações de arquivo são conduzidas usando os meios MQL5, não podem estar fora da caixa de proteção do arquivo.

Exemplo:

#property copyright "Copyright 2000-2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//--- descrição
#property description "O script mostra um exemplo de utilização da FolderCreate()."
#property description "Parâmetro externo define a pasta para criação de pastas."
#property description "Após a execução do script, será criada a estrutura das pastas"
 
//--- mostramos a janela de parâmetros de entrada ao executar o script
#property script_show_inputs
//--- o parâmetro de entrada define a pasta em que está sendo executado o script
input bool     common_folder=false// pasta compartilhada de todos os terminais
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- pasta que criamos em MQL5\Files
   string root_folder="Folder_A";
   if(CreateFolder(root_folder,common_folder))
     {
      //--- nela, criamos uma pasta filha Child_Folder_B1
      string folder_B1="Child_Folder_B1";
      string path=root_folder+"\\"+folder_B1;          // criamos o nome da pasta com base na estrutura
      if(CreateFolder(path,common_folder))
        {
         //--- nesta pasta, criamos mais 3 filhas
         string folder_C11="Child_Folder_C11";
         string child_path=root_folder+"\\"+folder_C11;// criamos o nome da pasta com base na estrutura
         CreateFolder(child_path,common_folder);
         //--- segunda pasta filha
         string folder_C12="Child_Folder_C12";
         child_path=root_folder+"\\"+folder_C12;
         CreateFolder(child_path,common_folder);
 
         //--- terceira pasta filha
         string folder_C13="Child_Folder_C13";
         child_path=root_folder+"\\"+folder_C13;
         CreateFolder(child_path,common_folder);
        }
     }
//---
  }
//+------------------------------------------------------------------+
//| Tenta criar a pasta e exibe uma mensagem sobre isto              |
//+------------------------------------------------------------------+
bool CreateFolder(string folder_path,bool common_flag)
  {
   int flag=common_flag?FILE_COMMON:0;
   string working_folder;
//--- definimos o caminho completo dependendo do parâmetro common_flag
   if(common_flag)
      working_folder=TerminalInfoString(TERMINAL_COMMONDATA_PATH)+"\\MQL5\\Files";
   else
      working_folder=TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Files";
//--- mensagem de depuração  
   PrintFormat("folder_path=%s",folder_path);
//--- tentativa de criar a pasta no caminho relativo MQL5\Files
   if(FolderCreate(folder_path,flag))
     {
      //--- exibimos o caminho completo para a pasta criada
      PrintFormat("Criamos a pasta %s",working_folder+"\\"+folder_path);
      //--- redefinimos o código de erro
      ResetLastError();
      //--- execução bem-sucedida
      return true;
     }
   else
      PrintFormat("Falha ao cria a pasta %s. Código de erro %d",working_folder+folder_path,GetLastError());
//--- execução mal-sucedida
   return false;
  }

Veja Também

FileOpen(), FolderClean(), FileCopy()