下载MetaTrader 5
MQL5参考文件函数FolderCreate 

FolderCreate

函数在文件目录下新建目录 (依据 common_flag的值 )。

bool  FolderCreate(
   string  folder_name,       // 带有新文件夹名的字符串
   int     common_flag=0      // 范围
   );

参量

folder_name

[in] 想要新建的目录名称,包括文件夹的全部路径。

common_flag=0

[in] 标记 决定目录位置,如果common_flag=FILE_COMMON,那么目录在所有客户端的共享目录中 \Terminal\Common\Files,否则,目录会在本地文件夹中(MQL5\Files 或者 MQL5\Tester\Files )。

返回值

如果成功返回true, 否则-false。

注释

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

示例 :

//+------------------------------------------------------------------+
//|                                            Demo_FolderCreate.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//--- 描述
#property description "The script shows a sample use of FolderCreate()."
#property description "An external parameter defines the folder for creating folders."
#property description "After running the script, a structure of folders is created"
 
//--- 启动脚本时显示输入参数对话框
#property script_show_inputs
//--- 输入参数定义脚本运行的文件夹
input bool     common_folder=false// 所有程序端的共享文件夹
int            flag=0;              // 标识值决定了运行文件操作的位置 
//+------------------------------------------------------------------+
//| 脚本程序启动函数                                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
   string working_folder;
//--- 设置标识值,如果外部参数common_folder==true
   if(common_folder)
     {
      flag=FILE_COMMON;
      //--- 找出我们正在工作的文件夹
      working_folder=TerminalInfoString(TERMINAL_COMMONDATA_PATH)+"\\MQL5\\Files";
     }
   else working_folder=TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Files";
//--- 将被创建在MQL5\Files文件夹的文件夹
   string root="Folder_A";
   if(CreateFolder(working_folder,root,flag))
     {
      //--- 在Child_Folder_B1创建子文件夹
      string folder_B1="Child_Folder_B1";
      string path=root+"\\"+folder_B1;          // 基于结构创建文件夹名称
      if(CreateFolder(working_folder,path,flag))
        {
         //--- 在该文件夹创建3个子文件夹
         string folder_C11="Child_Folder_C11";
         string child_path=path+"\\"+folder_C11;// 基于结构创建文件夹名称
         CreateFolder(working_folder,child_path,flag);
         //--- 第二个子文件夹
         string folder_C12="Child_Folder_C12";
         child_path=path+"\\"+folder_C12;
         CreateFolder(working_folder,child_path,flag);
 
         //--- 第三个子文件夹
         string folder_C13="Child_Folder_C13";
         child_path=path+"\\"+folder_C13;
         CreateFolder(working_folder,child_path,flag);
        }
     }
//---
  }
//+------------------------------------------------------------------+
//| 试图创建文件夹并显示信息                                            |
//+------------------------------------------------------------------+
bool CreateFolder(string working_folder,string folder_path,int file_flag)
  {
//--- 调试信息   
   PrintFormat("folder_path=%s",folder_path);
//--- 试图创建MQL5\Files路径相关的文件夹 
   if(FolderCreate(folder_path,file_flag))
     {
      //--- 向已创建的文件夹显示整个路径
      PrintFormat("Folder %s has been created",working_folder+"\\"+folder_path);
      //--- 重置错误代码
      ResetLastError();
      //--- 返回成功结果
      return true;
     }
   else
      PrintFormat("Failed to create folder %s. Error code %d",working_folder+folder_path,GetLastError());
//--- 失败
   return false;
  }

另见

FileOpen(), FolderClean(), FileCopy()


更新: 2015.12.03