FileIsExist

Vérifie l'existence d'un fichier.

bool  FileIsExist(
   const string  file_name,       // nom du fichier
   int           common_flag=0    // domaine de recherche
   );

Paramètres

file_name

[in]  Le nom du fichier vérifié.

common_flag=0

[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.

La valeur rendue

Rend true, si le fichier indiqué existe.

Note

Le fichier vérifié peut être le sous-répertoire. Dans ce cas la fonction FileIsExist() rendra false, et l'erreur 5018 - "Ce n'est pas un fichier, c'est un répertoire" (regardez l'exemple pour la fonction FileFindFirst) sera inscrite dans une variable _LastError.

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 common_flag=FILE_COMMON, la fonction cherche le fichier indiqué dans le dossier commun de tous les terminaux de client \Terminal\Common\Files, dans le cas contraire la fonction cherche le fichier dans le dossier local (MQL5\Files ou MQL5\Tester\Files en cas du test).

Exemple:

//--- affichons la fenêtre des paramètres d'entrée au lancement du script 
#property script_show_inputs
//---la date pour les anciens fichiers
input datetime InpFilesDate=D'2013.01.01 00:00';
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string   file_name;      // la variable pour stocker les noms des fichiers
   string   filter="*.txt"// le filtre pour rechercher les fichiers
   datetime create_date;    // la date de la création du fichier
   string   files[];        // la liste des noms des fichiers
   int      def_size=25;    // la taille du tableau par défaut
   int      size=0;         // le nombre de fichiers
//--- allouons la mémoire pour un tableau
   ArrayResize(files,def_size);
//--- la réception du handle de la recherche dans la racine du dossier local
   long search_handle=FileFindFirst(filter,file_name);
//--- vérifions, si la fonction FileFindFirst() a travaillé avec succès
   if(search_handle!=INVALID_HANDLE)
     {
      //--- trions les fichiers dans le cycle
      do
        {
         files[size]=file_name;
         //--- augmentons la taille du tableau
         size++;
         if(size==def_size)
           {
            def_size+=25;
            ArrayResize(files,def_size);
           }
         //--- oblitérons la valeur de l'erreur
         ResetLastError();
         //---recevrons la date de la création du fichier
         create_date=(datetime)FileGetInteger(file_name,FILE_CREATE_DATE,false);
         //--- vérifions si le fichier est ancien
         if(create_date<InpFilesDate)
           {
            PrintFormat("Le fichier %s est supprimé!",file_name);
            //--- supprimons un ancien fichier
            FileDelete(file_name);
           }
        }
      while(FileFindNext(search_handle,file_name));
      //--- fermons le handle de la recherche
      FileFindClose(search_handle);
     }
   else
     {
      Print("Files not found!");
      return;
     }
//--- vérifions quels fichiers sont restés
   PrintFormat("Les résultats:");
   for(int i=0;i<size;i++)
     {
      if(FileIsExist(files[i]))
         PrintFormat("Le fichier %s existe!",files[i]);
      else
         PrintFormat("Le fichier %s est supprimé!",files[i]);
     }
  }

Voir aussi

FileFindFirst