FileMove

Sposta il file da una cartella locale o condivisa in un altra cartella.

bool  FileMove(
   const string  src_file_name,    // Il nome del file per l'operazione di spostamento
   int           common_flag,      // Locazione
   const string  dst_file_name,    // Nome del file di destinazione
   int           mode_flags        // Modalità di accesso
   );

Parametri

src_file_name

[in]  Nome del file da spostare/rinominare.

common_flag

[in] Flag determinante la posizione del file. Se common_flag = FILE_COMMON, allora il file si trova in una cartella condivisa per tutti i terminali client \Terminal\Common\Files. In caso contrario, il file si trova in una cartella locale (common_flag=0).

dst_file_name

[in]  Nome del file dopo l'operazione

mode_flags

[in]Flag di Accesso. Il parametro può contenere solo 2 flags: FILE_REWRITE e/o FILE_COMMON - altri flags vengono ignorati. Se il file già esiste ed il flag FILE_REWRITE non è specificato, il file non verrà riscritto, e la funzione resituità false.

Valore restituito

In caso di fallimento la funzione restituisce false.

Nota

Per motivi di sicurezza, il lavoro con i file è strettamente controllato nel linguaggio MQL5. I file con cui sono condotte le operazioni di file utilizzando i mezzi MQL5, non possono esservi al di fuori della sandbox del file.

Se il nuovo file esiste già, la copia verrà effettuata in base alla disponibilità del flag FILE_REWRITE nel parametro mode_flags.

Esempio:

//--- mostra la finestra dei parametri di input quando lancia lo script
#property script_show_inputs
//--- parametri di input
input string InpSrcName="data.txt";
input string InpDstName="newdata.txt";
input string InpSrcDirectory="SomeFolder";
input string InpDstDirectory="OtherFolder";
//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script                                         |
//+--------------------------------------------------------------------------------+
voidOnStart()
  {
   string local=TerminalInfoString(TERMINAL_DATA_PATH);
   string common=TerminalInfoString(TERMINAL_COMMONDATA_PATH);
//--- riceve i percorsi dei file
   string src_path;
   string dst_path;
   StringConcatenate(src_path,InpSrcDirectory,"//",InpSrcName);
   StringConcatenate(dst_path,InpDstDirectory,"//",InpDstName);
//--- controlla se il file sorgente esiste (se no - esce)
   if(FileIsExist(src_path))
      PrintFormat("il file %s esiste nella cartella %s\\Files\\%s",InpSrcName,local,InpSrcDirectory);
   else
     {
      PrintFormat("Errore, %s file sorgente non trovato",InpSrcName);
      return;
     }
//--- controlla se il file risultato già esiste
   if(FileIsExist(dst_path,FILE_COMMON))
     {
      PrintFormat("il file %s esiste nella cartella %s\\Files\\%s",InpDstName,common,InpDstDirectory);
      //--- il file esiste, lo spostamento dev'essere eseguito con la flag FILE_REWRITE
      ResetLastError();
      if(FileMove(src_path,0,dst_path,FILE_COMMON|FILE_REWRITE))
         PrintFormat("il %s è stato spostato",InpSrcName);
      else
         PrintFormat("Errore! Code = %d",GetLastError());
     }
   else
     {
      PrintFormat("il file %s non esiste nella cartella %s\\Files\\%s",InpDstName,common,InpDstDirectory);
      //--- il file non esiste, lo spostamento dev'essere eseguito senza la flag FILE_REWRITE
      ResetLastError();
      if(FileMove(src_path,0,dst_path,FILE_COMMON))
         PrintFormat("il %s è stato spostato",InpSrcName);
      else
         PrintFormat("Errore! Code = %d",GetLastError());
     }
//--- il file è stato spostato; controlliamo 
   if(FileIsExist(dst_path,FILE_COMMON) && !FileIsExist(src_path,0))
      Print("Ok!");
   else
      Print("Errore!");
  }

Vedi anche

FileIsExist