MetaTrader 5 MT5 Scripts Demo_FileFind – script MetaTrader 5

Demo_FileFind – script MetaTrader 5

The script is a simple example of using functions for search and work with files and directories.

This script searches and displays names of all files and directories to the “Experts” folder which are located in the terminal local folder. The terminal local folder location can be obtained calling the TerminalInfoString() function.

PrintFormat("The path to the terminal local folder: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));

The script uses the useful property of the FileIsExist() function to find the directories. If the name of the current directory in the function parameter is specified, the function will return “false”, and the _LastError variable will log an error 5018 – “This is not a file, this is a directory”.

You can find more information about the description of the FileFindFirst(), FileFindNext() and FileFindClose() functions in the Help.

Code:

void OnStart()
  {
   string file_name;
   int    i=1;
//--- receive search handle in local folders' root
   long search_handle=FileFindFirst(InpFilter,file_name);
//--- check if FileFindFirst() function executed successfully
   if(search_handle!=INVALID_HANDLE)
     {
      //--- check if the passed strings are file or directory names in the loop
      do
        {
         ResetLastError();
         //--- if this is a file, the function will return true, if it is a directory, the function will generate error
         FileIsExist(file_name);
         PrintFormat("%d : %s name = %s",i,GetLastError()==5018 ? "Directory" : "File",file_name);
         i++;
        }
      while(FileFindNext(search_handle,file_name));
      //--- close search handle
      FileFindClose(search_handle);
     }
   else
      Print("Files not found!");
  }


📈 ROBOTFX MetaTrader Expert Advisors and Indicators to maximize profits and minimize the risks