FileMove

Move um arquivo a partir de um local ou a partir de pasta compartilhada para outra pasta.

bool  FileMove(
   const string  src_file_name,    // O nome do arquivo para a operação de movimentação
   int           common_flag,      // Locação
   const string  dst_file_name,    // Nome do arquivo de destino
   int           mode_flags        // Modo de acesso
   );

Parâmetros

src_file_name

[in]  O nome do arquivo para mover/renomear.

common_flag

[in] Bandeira determinando a localização do arquivo. Se common_flag = FILE_COMMON, então o arquivo está localizado em uma pasta compartilhada para todos os terminais de cliente \Terminal\Common\Files. Caso contrário, o arquivo está localizado em uma pasta local (common_flag=0).

dst_file_name

[in]  O nome do arquivo após a operação

mode_flags

[in] Bandeiras de acesso. O parâmetro pode conter apenas duas bandeiras: FILE_REWRITE e/ou FILE_COMMON - outras bandeiras são ignoradas. Se o arquivo já existe e a bandeira FILE_REWRITE não for especificada, o arquivo não será reescrito, e a função retornará false.

Valor do Retorno

Em caso de falha a função retornará 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.

Se o novo arquivo já existe, a cópia será feita dependendo da disponibilidade da bandeira FILE_REWRITE dentro do parâmetro mode_flags.

Exemplo:

//--- mosta a janela dos parâmetros de entrada quando lançado o script
#property script_show_inputs
//--- parâmetros de entrada
input string InpSrcName="data.txt";
input string InpDstName="newdata.txt";
input string InpSrcDirectory="SomeFolder";
input string InpDstDirectory="OtherFolder";
//+------------------------------------------------------------------+
//| Programa Script da função start (iniciar)                        |
//+------------------------------------------------------------------+
void OnStart()
  {
   string local=TerminalInfoString(TERMINAL_DATA_PATH);
   string common=TerminalInfoString(TERMINAL_COMMONDATA_PATH);
//--- receber caminhos de arquivo
   string src_path;
   string dst_path;
   StringConcatenate(src_path,InpSrcDirectory,"//",InpSrcName);
   StringConcatenate(dst_path,InpDstDirectory,"//",InpDstName);
//--- verifica se o arquivo de origem existe (se não - saída)
   if(FileIsExist(src_path))
      PrintFormat("%s file arquivo existe no %s\\Files\\%s pasta",InpSrcName,local,InpSrcDirectory);
   else
     {
      PrintFormat("Erro, %s arquivo de origem não encontrado",InpSrcName);
      return;
     }
//--- verifica se o arquivo do resultado já existe
   if(FileIsExist(dst_path,FILE_COMMON))
     {
      PrintFormat("%s arquivo existe no %s\\Files\\%s pasta",InpDstName,common,InpDstDirectory);
      //--- arquivo existe, movendo-se deve ser realizado com a flag FILE_REWRITE
      ResetLastError();
      if(FileMove(src_path,0,dst_path,FILE_COMMON|FILE_REWRITE))
         PrintFormat("%s arquivo movido",InpSrcName);
      else
         PrintFormat("Erro! Código = %d",GetLastError());
     }
   else
     {
      PrintFormat("%s arquivo não existe no %s\\Files\\%s pasta",InpDstName,common,InpDstDirectory);
      //--- arquivo não existe, movendo-se deve ser realizado sem a flag FILE_REWRITE
      ResetLastError();
      if(FileMove(src_path,0,dst_path,FILE_COMMON))
         PrintFormat("%s arquivo movido",InpSrcName);
      else
         PrintFormat("Erro! Código = %d",GetLastError());
     }
//--- o arquivo é movido, vamos verificar-lo fora
   if(FileIsExist(dst_path,FILE_COMMON) && !FileIsExist(src_path,0))
      Print("Sucesso!");
   else
      Print("Erro!");
  }

Também Veja

FileIsExist