//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
//--- входные параметры
input ulong InpThresholdSize=20; // граница размера файлов в килобайтах
input string InpBigFolderName="big"; // папка для больших файлов
input string InpSmallFolderName="small"; // папка для маленьких файлов
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
string file_name; // переменная для хранения имен файлов
string filter="*.csv"; // фильтр для поиска файлов
ulong file_size=0; // размер файла в байтах
int size=0; // количество файлов
//--- распечатаем путь к папке в которой будем работать
PrintFormat("Работаем в папке %s\\Files\\",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("Ошибка, код = %d",GetLastError());
}
while(FileFindNext(search_handle,file_name));
//--- закрываем хэндл поиска
FileFindClose(search_handle);
}
else
Print("Files not found!");
} |