FileIsExist

파일의 존재 여부를 확인합니다.

bool  FileIsExist(
   const string  file_name,       // 파일명
   int           common_flag=0    // 탐색 영역
   );

Parameters

file_name

[in]  확인 중인 파일의 이름

common_flag=0

[in]  파일 위치를 결정짓는 플래그. common_flag = FILE_COMMON 라면, 파일은 모든 클라이언트 터미널의 공유 폴더인 \Terminal\Common\Files에 있습니다. 그렇지 않으면, 파일은 로컬 폴더에 있습니다.

반환 값

지정한 파일이 있는 경우 true를 반환합니다.

참고

선택한 파일이 하위 디렉토리로 밝혀질 수 있습니다. 이 경우 FileIsExist() 함수는 false를 반환하고 오류 5018은 _LastError 변수에 기록됩니다 - "이것은 파일이 아닌 디렉토리입니다"(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_name);
            //--- 오래된 파일 삭제
            FileDelete(file_name);
           }
        }
      while(FileFindNext(search_handle,file_name));
      //--- 검색 핸들 닫기
      FileFindClose(search_handle);
     }
   else
     {
      Print("파일을 찾을 수 없습니다!");
      return;
     }
//--- 남아 있는 파일 확인
   PrintFormat("결과:");
   for(int i=0;i<size;i++)
     {
      if(FileIsExist(files[i]))
         PrintFormat("%s 파일 존재!",files[i]);
      else
         PrintFormat("%s 파일 삭제됨!",files[i]);
     }
  }

더 보기

FileFindFirst