跳至内容

File Functions

文件函数

这是一组用于处理文件的函数。

出于安全考虑,MQL4语言中处理文件的行为受到严格控制。使用MQL4进行文件操作的文件不能超出文件沙箱。

有两类目录(包含子目录)可以存放文件:

  • terminal_data_folder\MQL4\Files\(在终端菜单中选择“文件”->“打开数据目录”查看);
  • 计算机上所有终端的共享文件夹——通常位于C:\Documents and Settings\All Users\Application Data\MetaQuotes\Terminal\Common\Files目录下。

可以使用TerminalInfoString()函数,通过ENUM_TERMINAL_INFO_STRING枚举类型来获取这些目录的名称:

//--- Folder that stores the terminal data
   string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);
//--- Common folder for all client terminals
   string common_data_path=TerminalInfoString(TERMINAL_COMMONDATA_PATH);

禁止从其他目录处理文件。

文件函数允许处理所谓的“命名管道”。只需调用FileOpen()函数并传入适当的参数即可。

函数操作
FileFindFirst根据指定的过滤器开始搜索目录中的文件
FileFindNext继续由FileFindFirst()函数开始的搜索
FileFindClose关闭搜索句柄
FileOpen以指定的名称和标志打开文件
FileDelete删除指定的文件
FileFlush将输入/输出文件缓冲区中剩余的所有数据写入磁盘
FileGetInteger获取文件的整数属性
FileIsEnding定义读取过程中文件的结束位置
FileIsLineEnding定义读取过程中文本文件中行的结束位置
FileClose关闭之前打开的文件
FileIsExist检查文件的存在情况
FileCopy将原始文件从本地或共享文件夹复制到另一个文件
FileMove移动或重命名文件
FileReadArray从BIN类型的文件中读取除字符串外的任何类型数组
FileReadBool从CSV类型的文件中读取当前位置到分隔符(或文本行末尾)之间的字符串,并将读取的字符串转换为布尔值
FileReadDatetime从CSV类型的文件中读取格式为“YYYY.MM.DD HH:MM:SS”、“YYYY.MM.DD”或“HH:MM:SS”的字符串,并将其转换为日期时间值
FileReadDouble从文件指针的当前位置读取双精度浮点数
FileReadFloat从文件指针的当前位置读取浮点数
FileReadInteger从文件指针的当前位置读取int、short或char值
FileReadLong从文件指针的当前位置读取长整型值
FileReadNumber从CSV类型的文件中读取当前位置到分隔符(或文本行末尾)之间的字符串,并将读取的字符串转换为双精度浮点数
FileReadString从文件指针的当前位置读取字符串
FileReadStruct将二进制文件的内容读入作为参数传递的结构中,从文件指针的当前位置开始
FileSeek将文件指针的位置相对于指定位置移动指定的字节数
FileSize返回已打开文件的尺寸
FileTell返回已打开文件的文件指针当前位置
FileWrite将数据写入CSV或TXT类型的文件
FileWriteArray将除字符串外的任何类型数组写入BIN类型的文件
FileWriteDouble从文件指针的当前位置将双精度浮点数写入二进制文件
FileWriteFloat从文件指针的当前位置将浮点数写入二进制文件
FileWriteInteger从文件指针的当前位置将int类型值写入二进制文件
FileWriteLong从文件指针的当前位置将长整型值写入二进制文件
FileWriteString从文件指针的当前位置开始,将字符串参数写入BIN或TXT文件
FileWriteStruct将作为参数传递的结构的内容从文件指针的当前位置开始写入二进制文件
FolderCreate在Files目录中创建文件夹
FolderDelete删除选定的目录。如果文件夹不为空,则无法删除
FolderClean删除指定文件夹中的所有文件
FileOpenHistory在当前历史目录或其子目录中打开文件

如果使用FileOpen()以写入方式打开文件,如果路径中没有指定的子目录,则会自动创建这些子目录。

最后更新于