FolderCreate

files 폴더에 디렉터리를 생성합니다(common_flag 값에 따라 다름)

bool  FolderCreate(
   string  folder_name,       // 생성된 폴더 이름의 행
   int     common_flag=0      // 액션 영역
   );

Parameters

folder_name

[in]  생성할 디렉토리의 이름. 폴더의 상대 경로를 포함합니다.

common_flag=0

[in]  디렉토리 위치를 정의하는 플래그. common_flag=FILE_COMMON 이면, 디렉토리는 모든 클라이언트의 공용폴더인 terminals \Terminal\Common\Files 에 있습니다. 그렇지 않으면, 디렉토리가 로컬 폴더에 있습니다 (MQL5\Files 또는 테스트의 경우 MQL5\Tester\Files).

반환 값

성공하면 true를 반환하고 그렇지 않으면 false를 반환합니다.

참고

보안을 위해 MQL5 언어로 파일 작업을 엄격하게 제어합니다. MQL5 언어로 파일 작업에 사용되는 파일은 파일 샌드박스 외부에 위치할 수 없습니다.

예:

#property copyright "Copyright 2000-2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//--- 설명
#property description "스크립트에는 FolderCreate() 애플리케이션 샘플이 표시됩니다."
#property description "외부 파라미터는 폴더를 생성하기 위한 디렉터리를 정의합니다."
#property description "폴더 구조는 스크립트를 실행한 후 생성됩니다"
 
//--- 스크립트 실행 중 입력 매개 변수의 표시 창
#property script_show_inputs
//--- 입력 매개 변수는 스크립트가 작동하는 폴더를 정의합니다
input bool     common_folder=false// 모든 터미널을 위한 공용 폴더
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- MQL5\Files 에 생성될 폴더
   string root_folder="Folder_A";
   if(CreateFolder(root_folder,common_folder))
     {
      //--- 그 안에 Child_Folder_B1 sub-folder 생성
      string folder_B1="Child_Folder_B1";
      string path=root_folder+"\\"+folder_B1;          // 구조를 고려하여 폴더 이름을 생성합니다
      if(CreateFolder(path,common_folder))
        {
         //--- 이 폴더에 하위 디렉터리를 3개 더 생성
         string folder_C11="Child_Folder_C11";
         string child_path=root_folder+"\\"+folder_C11;// 구조를 고려하여 폴더 이름을 생성
         CreateFolder(child_path,common_folder);
         //--- 두 번째 하위 디렉터리
         string folder_C12="Child_Folder_C12";
         child_path=root_folder+"\\"+folder_C12;
         CreateFolder(child_path,common_folder);
 
         //--- third sub-directory
         string folder_C13="Child_Folder_C13";
         child_path=root_folder+"\\"+folder_C13;
         CreateFolder(child_path,common_folder);
        }
     }
//---
  }
//+------------------------------------------------------------------+
//| 폴더를 만들고 관련 메시지를 표시해 보십시오           |
//+------------------------------------------------------------------+
bool CreateFolder(string folder_path,bool common_flag)
  {
   int flag=common_flag?FILE_COMMON:0;
   string working_folder;
//--- common_flag 파라미터에 따라 전체 경로 정의
   if(common_flag)
      working_folder=TerminalInfoString(TERMINAL_COMMONDATA_PATH)+"\\MQL5\\Files";
   else
      working_folder=TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Files";
//--- 디버깅 메시지  
   PrintFormat("folder_path=%s",folder_path);
//--- MQL5\Files 경로와 관련한 폴더 생성 시도
   if(FolderCreate(folder_path,flag))
     {
      //--- 생성된 폴더의 전체 경로 표시
      PrintFormat("Created the folder %s",working_folder+"\\"+folder_path);
      //--- 에러 코드 재설정
      ResetLastError();
      //--- 실행 성공
      return true;
     }
   else
      PrintFormat("%s 폴더 생성 실패. Error code %d",working_folder+folder_path,GetLastError());
//--- 실행 실패
   return false;
  }

더 보기

FileOpen(), FolderClean(), FileCopy()