MetaTrader 5 herunterladen

FileMove

überträgt die Datei aus einem lokalen oder Gesamtordner in einen anderen Ordner.

bool  FileMove(
   const string  src_file_name,    // der Dateiname für übertragung 
   int           common_flag,      // die Lage
   const string  dst_file_name,    // der Name der Zieldatei
   int           mode_flags        // Zugangsverfahren 
   );

Parameter

src_file_name

[in]  Dateiname für übertragung/Umbanennung.

common_flag

[in] Flagge, die die Lage der Datei bestimmt. Wenn common_flag=FILE_COMMON ist, befindet sich die Datei im Gesamtordner aller Client-Terminals \Terminal\Common\Files. Anderenfalls befindet sich die Datei im lokalen Ordner (common_flag=0).

dst_file_name

[in]  Name der ergebenden Datei.

mode_flags

[in] Zugangsflaggen. Parameter kann nur zwei Flaggen enthalten: FILE_REWRITE und/oder FILE_COMMON - andere Flaggen werden ignoriert. Wenn die Datei existiert schon und dabei die Flagge FILE_REWRITE nicht angegeben wurde, wird die Datei nicht neugeschrieben, und die Funktion gibt false zurück.

Rückgabewert

Beim Misserfolg gibt die Funktion false zurück.

Bemerkung

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 die neue Datei existiert schon, wird das Kopieren abhängig davon durchgeführt werden, ob die Flagge FILE_REWRITE im Parameterwert mode_flags gibt.

Beispiel:

//--- Beim Starten des Scripts zeigen Sie den Fenster mit den Eingabeparametern an 
#property script_show_inputs
//--- Eingabeparameters
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);
//--- erhalten Sie die Dateipfade
   string src_path;
   string dst_path;
   StringConcatenate(src_path,InpSrcDirectory,"//",InpSrcName);
   StringConcatenate(dst_path,InpDstDirectory,"//",InpDstName);
//--- prüfen Sie, ob die Quelle Datei existiert (wenn es gibt keine - Ausgabe)
   if(FileIsExist(src_path))
      PrintFormat("%s Datei existiert in der %s\\Files\\%s Ordner nicht",InpSrcName,local,InpSrcDirectory);
   else
     {
      PrintFormat("Fehler, %s Hauptdatei nicht gefunden",InpSrcName);
      return;
     }
//--- prüfen Sie, ob die Ergebnisdatei existiert
   if(FileIsExist(dst_path,FILE_COMMON))
     {
      PrintFormat("%s Datei existiert in der %s\\Files\\%s Ordner nicht",InpDstName,common,InpDstDirectory);
      //--- die Datei existiert, die Umstellung muss man mit der Fahne FILE_REWRITE durchführen
      ResetLastError();
      if(FileMove(src_path,0,dst_path,FILE_COMMON|FILE_REWRITE))
         PrintFormat("%s Datei  ist versetzt",InpSrcName);
      else
         PrintFormat("Fehler! Kode = %d",GetLastError());
     }
   else
     {
      PrintFormat("%s Datei existiert in der %s\\Files\\%s Ordner nicht",InpDstName,common,InpDstDirectory);
      //--- die Datei existiert nicht, die Umstellung muss man ohne der Fahne FILE_REWRITE durchführen
      ResetLastError();
      if(FileMove(src_path,0,dst_path,FILE_COMMON))
         PrintFormat("%s Datei  ist versetzt",InpSrcName);
      else
         PrintFormat("Fehler! Kode = %d",GetLastError());
     }
//--- jetzt ist die Datei versetzt, überprüfen Sie es
   if(FileIsExist(dst_path,FILE_COMMON) && !FileIsExist(src_path,0))
      Print("Erfolgreich!");
   else
      Print("Fehler!");
  }

Sehen Sie auch

FileIsExist