MetaTrader 5 herunterladen

FileIsExist

Prueft, ob die Datei existiert.

bool  FileIsExist(
   const string  file_name,       // der Dateiname
   int           common_flag=0    // der Suchbereich
   );

Prameter

file_name

[in]  Name der geprüften Datei.

common_flag=0

[in] Flagge, die Dateilage bestimmt. Wenn common_flag=FILE_COMMON ist, befindet sich die Datei im gesamten Ordner aller Client-Terminals \Terminal\Common\Files. Anderenfalls befindet sich die Datei im lokalen Ordner.

Rückgabewert

Gibt true zurück, wenn die angegebene Datei existiert.

Hinweis

Die prüfen Datei kann ein Unterverzeichnis werden. in diesem Fall gibt die FileIsExist() Funktion false, und in die _LastError Variable wird Fehler 5018 geschrieben - "Das ist keine Datei, nur Verzeichnis" (sehen Sie das Beispiel für die FileFindFirst Funktion).

Aus Sicherheitsgründen ist die Arbeit mit Dateien in MQL5 streng gesteuert. Dateien, mit denen Datei-Operationen mittels MQL5 durchgeführt werden, können nicht außerhalb der Datei-Sandbox sein.

Wenn common_flag=FILE_COMMON ist, sucht die Funktion die angegebene Datei im Gesamtordner aller Client-Terminals \Terminal\Common\Files, anderenfalls sucht die Funktion die Datei im lokalen Ordner (MQL5\Files oder MQL5\Tester\Files beim Testen).

Beispiel:

//--- Beim Starten des Scripts zeigen Sie den Fenster mit den Eingabeparametern an
#property script_show_inputs
//---Datum für alte Dateien
input datetime InpFilesDate=D'2013.01.01 00:00';
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string   file_name;      // Variable für Speichern die Dateinamen 
   string   filter="*.txt"// Der Filter für die Suche nach Dateien 
   datetime create_date;    // das Dateierstellungsdatum 
   string   files[];        // Die Liste von Dateinamen
   int      def_size=25;    // die standardmässige Größe des Arrays 
   int      size=0;         // die Anzahl der Dateien
//--- trennen Sie den Speicher für den Array ab 
   ArrayResize(files,def_size);
//--- erhalten Sie die Suche Handle von Grund auf den lokaler Ordner
   long search_handle=FileFindFirst(filter,file_name);
//--- prüfen Sie, ob die FileFindFirst()Funktion erfolgreich durchgearbeitet hat 
   if(search_handle!=INVALID_HANDLE)
     {
      //--- durchlaufen Sie im Zyklus Dateien
      do
        {
         files[size]=file_name;
         //--- erhöhen Sie die Größe des Arrays
         size++;
         if(size==def_size)
           {
            def_size+=25;
            ArrayResize(files,def_size);
           }
         //--- stürzen Sie den Fehlerwert
         ResetLastError();
         //--- haben Sie das Dateierstellungsdatum
         create_date=(datetime)FileGetInteger(file_name,FILE_CREATE_DATE,false);
         //--- prüfen Sie, ob die Datei alt ist
         if(create_date<InpFilesDate)
           {
            PrintFormat("Die %s Datei gelöscht!",file_name);
            //---löschen Sie die alte Datei
            FileDelete(file_name);
           }
        }
      while(FileFindNext(search_handle,file_name));
      //--- schließen Sie die Suche Handle
      FileFindClose(search_handle);
     }
   else
     {
      Print("Keine Dateien gefunden!");
      return;
     }
//--- prüfen Sie, ob welche Dateien blieben
   PrintFormat("Resultate:");
   for(int i=0;i<size;i++)
     {
      if(FileIsExist(files[i]))
         PrintFormat("Die %s Datei existiert!",files[i]);
      else
         PrintFormat("Die %s Datei gelöscht!",files[i]);
     }
  }

Sehen Sie auch

FileFindFirst