演示_FileMove - MetaTrader 5脚本
- 显示:
- 1364
- 等级:
- 已发布:
- 2013.10.24 14:46
- 已更新:
- 2016.11.22 07:33
- 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
这段脚本尝试移动源文件从客户端本地文件夹至所有客户端共享的子目录。文件名和子目录名由脚本的输入参数指定。客户端的本地文件夹位置包含在 TerminalInfoString() 函数。
PrintFormat("客户端本地文件夹路径: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH)); PrintFormat("客户端共享文件夹路径: %s\\Files\\",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
首先, 脚本调用 FileIsExist() 函数来确认客户端本地文件夹中是否有源文件存在, 如果没有, 则发错误消息。之后它将检查是否有目标文件存在于指定路径。如果目标文件不存在, 移动执行江不会加 FILE_REWRITE 标志。否则, 使用标志, 或者移动不会执行。
代码:
//--- 当脚本启动时显示输入参数窗口 #property script_show_inputs //--- 输入参数 input string InpSrcName="data.txt"; input string InpDstName="newdata.txt"; input string InpSrcDirectory="SomeFolder"; input string InpDstDirectory="OtherFolder"; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { string local=TerminalInfoString(TERMINAL_DATA_PATH); string common=TerminalInfoString(TERMINAL_COMMONDATA_PATH); //--- 文件路径变量 string src_path; string dst_path; StringConcatenate(src_path,InpSrcDirectory,"//",InpSrcName); StringConcatenate(dst_path,InpDstDirectory,"//",InpDstName); //--- 检查源文件是否存在 (如果不存在 - 退出) if(FileIsExist(src_path)) PrintFormat("%s 文件存在 %s\\Files\\%s 文件夹",InpSrcName,local,InpSrcDirectory); else { PrintFormat("错误, %s 源文件未发现",InpSrcName); return; } //--- 检查目标文件是否存在 if(FileIsExist(dst_path,FILE_COMMON)) { PrintFormat("%s 文件存在 %s\\Files\\%s 文件夹",InpDstName,common,InpDstDirectory); //--- 文件存在, 移动操作要有 FILE_REWRITE 标志 ResetLastError(); if(FileMove(src_path,0,dst_path,FILE_COMMON|FILE_REWRITE)) PrintFormat("%s 文件移动",InpSrcName); else PrintFormat("错误!代码 = %d",GetLastError()); } else { PrintFormat("%s 文件不存在 %s\\Files\\%s 文件夹",InpDstName,common,InpDstDirectory); //--- 文件不存在, 移动操作执行无需 FILE_REWRITE 标志 ResetLastError(); if(FileMove(src_path,0,dst_path,FILE_COMMON)) PrintFormat("%s 文件移动",InpSrcName); else PrintFormat("错误!代码 = %d",GetLastError()); } //--- 文件移动; 检查 if(FileIsExist(dst_path,FILE_COMMON) && !FileIsExist(src_path,0)) Print("成功!"); else Print("错误!"); }
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/1614