FileDelete

在客户端中删除本地文件夹的指定文件。

bool  FileDelete(
   const string  file_name,     // 要删除的文件名
   int           common_flag=0  // 要删除的文件位置
   );

参量

file_name

[in]  文件名称。

common_flag=0

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

返回值

如果失败函数返回 false。

注释

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

删除客户端中本地文件夹中的指定文件(MQL5\files or MQL5\tester\files in case of testing). 如果common_flag = FILE_COMMON,函数就会从所有客户端的共享文件中删除文件。

示例:

//--- 启动脚本时显示输入参数的窗口
#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]);
     }
  }