FileIsExist

检测文件是否存在。

bool  FileIsExist(

   const string  file_name,       // 文件名

   int           common_flag=0    // 搜索区

   );

参量

file_name

[in]  被检测的文件名

common_flag=0

[in] 标记 决定文件位置,如果common_flag = FILE_COMMON,文件为所有客户端放置共享文件夹 \Terminal\Common\Files。否则,文件放置在本地文件夹中。

返回值

如果指定文件存在返回真值。

注释

检测的文件可以证明是子目录。这种情况下,FileIsExist()函数将返回false,_LastError变量将会登录错误5018 - "这是一个目录,而不是文件" (请见FileFindFirst 函数示例)。

  出于安全考虑,工作文件必须严格由MQL5语言管理。使用MQL5实 施文件操作的文件意味着,不能在文件沙箱外。

如果common_flag = FILE_COMMON,函数为所有客户端在共享文件中寻找文件 \Terminal\Common\Files,否则函数在本地文件夹中寻找文件 (MQL5 \ Files or MQL5 \ Tester \ Files 检测状态下)。

示例:

//--- 启动脚本时显示输入参数的窗口

#property script_show_inputs

//--- 旧文件的日期

input datetime InpFilesDate=D'2013.01.01 00:00';

//+------------------------------------------------------------------+

//| 脚本程序启动函数                                                   |

//+------------------------------------------------------------------+

void OnStart()

  {

   string   file_name;      // 存储文件名称的变量

   string   filter="*.txt"; // 搜索文件的过滤器

   datetime create_date;    // 文件创建日期

   string   files[];        // 文件名称列表

   int      def_size=25;    // 默认数组大小

   int      size=0;         // 文件名称

//--- 为数组分配内存

   ArrayResize(files,def_size);

//--- 在本地文件夹根目录下接收搜索句柄

   long search_handle=FileFindFirst(filter,file_name);

//--- 检查FileFindFirst()函数是否成功执行

   if(search_handle!=INVALID_HANDLE)

     {

      //--- 在循环中搜索文件

      do

        {

         files[size]=file_name;

         //--- 增加数组大小

         size++;

         if(size==def_size)

           {

            def_size+=25;

            ArrayResize(files,def_size);

           }

         //--- 重置错误值

         ResetLastError();

         //--- 接收文件创建日期

         create_date=(datetime)FileGetInteger(file_name,FILE_CREATE_DATE,false);

         //--- 检查文件是否是旧的

         if(create_date<InpFilesDate)

           {

            PrintFormat("%s file deleted!",file_name);

            //--- 删除旧文件

            FileDelete(file_name);

           }

        }

      while(FileFindNext(search_handle,file_name));

      //--- 关闭搜索句柄

      FileFindClose(search_handle);

     }

   else

     {

      Print("Files not found!");

      return;

     }

//--- 检查已保留哪些文件

   PrintFormat("Results:");

   for(int i=0;i<size;i++)

     {

      if(FileIsExist(files[i]))

         PrintFormat("%s file exists!",files[i]);

      else

         PrintFormat("%s file deleted!",files[i]);

     }

  }

另见

FileFindFirst