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()以写入方式打开文件,如果路径中没有指定的子目录,则会自动创建这些子目录。
最后更新于