#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;
}
|