FileIsExist

Verifica l'esistenza di un file.

bool  FileIsExist(
   const string  file_name,       // Nome del file
   int           common_flag=0    // Area di ricerca
   );

Parametri

file_name

[in]  Il nome del file che viene verificato

common_flag=0

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

Valore restituito

Restituisce true, se il file specifico esiste.

Nota

>Il file controllato può rivelarsi essere una sottodirectory. In questo caso, la funzione FileIsExist() restituirà false, mentre l'errore 5018 verrà loggato nella variabile _LastError variable - "Questa è una directory, non un file" (vedi l'esempio per la funzione FileFindFirst).

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 common_flag = FILE_COMMON, allora la funzione guarda al file in una cartella condivisa per tutti i terminali client \Terminal\Common\Files, altrimenti la funzione cerca il file in una cartella locale (MQL5\Files o MQL5\Tester\Files in caso di testing).

Esempio:

//--- mostra la finestra dei parametri di input quando si lancia lo script
#property script_show_inputs
//--- data per i vecchi file
input datetime InpFilesDate=D'2013.01.01 00:00';
//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script                                         |
//+--------------------------------------------------------------------------------+
voidOnStart()
  {
   string   file_name;      // variabile per memorizzare i nomi dei file
   string   filter="*.txt"// filtro per cercare i file
   datetime create_date;    // data di creazione file
   string   files[];        // lista dei nomi file
   int      def_size=25;    // grandezza array per default
   int      size=0;         // numero di file
//--- alloca la memoria per l'array
   ArrayResize(files,def_size);
//--- riceve l'handle di ricerca nella root della cartella locale
   long search_handle=FileFindFirst(filter,file_name);
//--- controlla se FileFindFirst() è stato eseguito con successo
   if(search_handle!=INVALID_HANDLE)
     {
      //--- cerca i file nel loop
      do
        {
         files[size]=file_name;
         //--- incrementa la grandezza dell'array
         size++;
         if(size==def_size)
           {
            def_size+=25;
            ArrayResize(files,def_size);
           }
         //--- resetta il valore dell'errore
         ResetLastError();
         //--- riceve la data di creazione del file
         create_date=(datetime)FileGetInteger(file_name,FILE_CREATE_DATE,false);
         //--- controlla se il file è vecchio
         if(create_date<InpFilesDate)
           {
            PrintFormat("%s file eliminato!",file_name);
            //--- elimina il vecchio file
            FileDelete(file_name);
           }
        }
      while(FileFindNext(search_handle,file_name));
      //--- chiude l'handle di ricerca
      FileFindClose(search_handle);
     }
   else
     {
      Print("File non trovato!");
      return;
     }
//--- controlla quale file è rimasto
   PrintFormat("Risultato:");
   for(int i=0;i<size;i++)
     {
      if(FileIsExist(files[i]))
         PrintFormat("%s file esiste!",files[i]);
      else
         PrintFormat("%s file eliminato!",files[i]);
     }
  }

Vedi anche

FileFindFirst