//--- 启动脚本时显示输入参数的窗口
#property script_show_inputs
//--- 输入参数
input ulong InpThresholdSize=20; // 千字节的文件门槛大小
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("Failed to open %s file, Error code = %d",file_name,GetLastError());
continue;
}
//--- 打印文件大小
PrintFormat("Size of %s file is equal to %d bytes",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 is moved",file_name);
else
PrintFormat("Error, code = %d",GetLastError());
}
while(FileFindNext(search_handle,file_name));
//--- 关闭搜索程序
FileFindClose(search_handle);
}
else
Print("Files not found!");
}
|