FileCopy

Copie le fichier original d'un répertoire local ou commun à un autre fichier.

bool  FileCopy(
   const string  src_file_name,     // nom du fichier-source
   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 copiage.

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 (par exemple, 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

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:

//---affichons 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 InpSrc="source.txt";       // la source
input string InpDst="destination.txt";  // la copie
input int    InpEncodingType=FILE_ANSI// ANSI=32 ou UNICODE=64
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- affichons le contenu de la source (il doit exister)
   if(!FileDisplay(InpSrc))
      return;
//--- vérifions, s'il y a déjà un fichier de la copie (ne doit pas être créé)
   if(!FileDisplay(InpDst))
     {
      //--- le fichier de la copie n'existe pas, le copiage sans drapeau FILE_REWRITE (le copiage juste)
      if(FileCopy(InpSrc,0,InpDst,0))
         Print("File is copied!");
      else
         Print("File is not copied!");
     }
   else
     {
      //--- le fichier de la copie existe déjà, essaierons copier sans drapeau FILE_REWRITE (le copiage incorrect)
      if(FileCopy(InpSrc,0,InpDst,0))
         Print("File is copied!");
      else
         Print("File is not copied!");
      //---le contenu du fichier InpDst sera le même
      FileDisplay(InpDst);
      //--- copions encore une fois avec le drapeau FILE_REWRITE (le copiage juste à l'existence du fichier)
      if(FileCopy(InpSrc,0,InpDst,FILE_REWRITE))
         Print("File is copied!");
      else
         Print("File is not copied!");
     }
//--- ont reçu la copie du fichier InpSrc
   FileDisplay(InpDst);
  }
//+------------------------------------------------------------------+
//| la lecture du contenu du fichier                                         |
//+------------------------------------------------------------------+
bool FileDisplay(const string file_name)
  {
//--- oblitérons la valeur de l'erreur
   ResetLastError();
//--- ouvrons le fichier
   int file_handle=FileOpen(file_name,FILE_READ|FILE_TXT|InpEncodingType);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- affichons le contenu d'un fichier dans une boucle
      Print("+---------------------+");
      PrintFormat("File name = %s",file_name);
      while(!FileIsEnding(file_handle))
         Print(FileReadString(file_handle));
      Print("+---------------------+");
      //--- fermons le fichier
      FileClose(file_handle);
      return(true);
     }
//--- on n'a pas réussi à ouvrir le fichier
   PrintFormat("%s is not opened, error = %d",file_name,GetLastError());
   return(false);
  }