FileMove

Déplace le fichier du dossier local ou total à un autre dossier.

bool  FileMove(
   const string  src_file_name,    // nom du fichier pour l'opération du déplacement
   int           common_flag,      // lieu de l'action
   const string  dst_file_name,    // nom du fichier de la destination
   int           mode_flags        // mode de l'accès
   );

Paramètres

src_file_name

[in]  Le nom du fichier pour le déplacement/la renomination.

common_flag

[in]   Le drapeau, déterminant l'endroit du fichier. Si common_flag=FILE_COMMON,  le fichier se trouve dans le dossier commun de tous les terminaux de client \Terminal\Common\Files. Dans le cas contraire le fichier se trouve dans le dossier local (common_flag=0).

dst_file_name

[in]  Le nom de fichier de résultat.

mode_flags

[in] Les drapeaux de l'accès.  Le paramètre peut contenir seulement 2 drapeaux: FILE_REWRITE et/ou FILE_COMMON - les autres drapeaux sont ignorés. Si le fichier existe déjà et le drapeau FILE_REWRITE, n'a pas été spécifié, donc le fichier ne sera pas réécrit et la fonction rendra false.

La valeur rendue

En cas de l'échec la fonction rend false.

Note

On contrôle strictement le travail avec les fichiers dans la langue MQL5 pour des raisons de sécurité. Les fichiers, avec lesquels on mène des opérations de fichier par les moyens de la langue MQL5, ne peuvent pas se trouver en dehors du sandbox de fichier".

Si un nouveau fichier existait, le copiage sera produit en fonction de la présence du drapeau FILE_REWRITE dans la valeur du paramètre mode_flags.

Exemple:

//--- montrons la fenêtre des paramètres d'entrée au lancement du script
#property script_show_inputs
//--- les paramètres d'entrée
input string InpSrcName="data.txt";
input string InpDstName="newdata.txt";
input string InpSrcDirectory="SomeFolder";
input string InpDstDirectory="OtherFolder";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string local=TerminalInfoString(TERMINAL_DATA_PATH);
   string common=TerminalInfoString(TERMINAL_COMMONDATA_PATH);
//--- recevrons les voies vers les fichiers
   string src_path;
   string dst_path;
   StringConcatenate(src_path,InpSrcDirectory,"//",InpSrcName);
   StringConcatenate(dst_path,InpDstDirectory,"//",InpDstName);
//--- vérifions s'il y a un fichier source (si elle n'existe pas - la sortie)
   if(FileIsExist(src_path))
      PrintFormat("%s file exists in the %s\\Files\\%s folder",InpSrcName,local,InpSrcDirectory);
   else
     {
      PrintFormat("Error, %s source file not found",InpSrcName);
      return;
     }
//--- vérifions, s'il y a déjà un fichier du résultat
   if(FileIsExist(dst_path,FILE_COMMON))
     {
      PrintFormat("%s file exists in the %s\\Files\\%s folder",InpDstName,common,InpDstDirectory);
      //--- le fichier existe, il faut passer le déplacement avec le drapeau FILE_REWRITE
      ResetLastError();
      if(FileMove(src_path,0,dst_path,FILE_COMMON|FILE_REWRITE))
         PrintFormat("%s file moved",InpSrcName);
      else
         PrintFormat("Error! Code = %d",GetLastError());
     }
   else
     {
      PrintFormat("%s file does not exist in the %s\\Files\\%s folder",InpDstName,common,InpDstDirectory);
      //--- le fichier n'existe pas, il faut passer le déplacement sans drapeau FILE_REWRITE
      ResetLastError();
      if(FileMove(src_path,0,dst_path,FILE_COMMON))
         PrintFormat("%s file moved",InpSrcName);
      else
         PrintFormat("Error! Code = %d",GetLastError());
     }
//--- maintenant le fichier est déplacé, vérifions ça
   if(FileIsExist(dst_path,FILE_COMMON) && !FileIsExist(src_path,0))
      Print("Success!");
   else
      Print("Error!");
  }

Voir aussi

FileIsExist