//--- 스크립트를 시작할 때 입력 매개 변수의 창을 표시합니다.
#property script_show_inputs
//--- 입력 매개 변수
input ulong InpThresholdSize=20; // file threshold size in kilobytes
input string InpBigFolderName="big"; // 큰 파일을 위한 폴더
input string InpSmallFolderName="small"; // 작은 파일을 위한 폴더
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수 |
//+------------------------------------------------------------------+
void OnStart()
{
string file_name; // 파일 이름 저장 변수
string filter="*.csv"; // 파일 검색을 위한 필터
ulong file_size=0; // 바이트 단위의 파일 사이즈
int size=0; // 파일 수
//--- 사용할 파일의 경로를 인쇄
PrintFormat("Working in %s\\Files\\ folder",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
//--- 모든 터미널의 공통 폴더 루트에 있는 검색 핸들을 수신합니다
long search_handle=FileFindFirst(filter,file_name,FILE_COMMON);
//--- FileFindFirst()가 성공적으로 실행되었는지 확인
if(search_handle!=INVALID_HANDLE)
{
//--- 크기에 따라 루프의 파일을 이동
do
{
//--- 파일 오픈
ResetLastError();
int file_handle=FileOpen(file_name,FILE_READ|FILE_CSV|FILE_COMMON);
if(file_handle!=INVALID_HANDLE)
{
//--- 파일 크기 수신
file_size=FileSize(file_handle);
//--- 파일 닫기
FileClose(file_handle);
}
else
{
PrintFormat("%s 파일 오픈 실패, 에러 코드 = %d",file_name,GetLastError());
continue;
}
//--- 파일 사이즈 출력
PrintFormat("%s 파일 사이즈가 %d 바이트와 같습니다",file_name,file_size);
//--- 파일 이동 경로 정의
string path;
if(file_size>InpThresholdSize*1024)
path=InpBigFolderName+"//"+file_name;
else
path=InpSmallFolderName+"//"+file_name;
//--- 파일 이동
ResetLastError();
if(FileMove(file_name,FILE_COMMON,path,FILE_REWRITE|FILE_COMMON))
PrintFormat("%s 파일이 이동되었습니다",file_name);
else
PrintFormat("Error, code = %d",GetLastError());
}
while(FileFindNext(search_handle,file_name));
//--- 검색 핸들 닫기
FileFindClose(search_handle);
}
else
Print("파일을 찾을 수 없습니다!");
}
|