FileIsExist
FileIsExist
检测文件是否存在。
bool FileIsExist(
const string file_name, // 文件名
int common_flag=0 // 搜索区
);参量
- file_name
[in] 被检测的文件名
- common_flag=0
[in] 标记 决定文件位置,如果common_flag = FILE_COMMON,文件为所有客户端放置共享文件夹 \Terminal\Common\Files。否则,文件放置在本地文件夹中。
返回值
如果指定文件存在返回真值。
注释
检测的文件可以证明是子目录。这种情况下,FileIsExist()函数将返回false,_LastError变量将会登录错误5018 - “这是一个目录,而不是文件” (请见FileFindFirst 函数示例)。
出于安全考虑,工作文件必须严格由MQL5语言管理。使用MQL5实 施文件操作的文件意味着,不能在文件沙箱外。
如果common_flag = FILE_COMMON,函数为所有客户端在共享文件中寻找文件 \Terminal\Common\Files,否则函数在本地文件夹中寻找文件 (MQL5 \ Files or MQL5 \ Tester \ Files 检测状态下)。
示例:
//--- 启动脚本时显示输入参数的窗口
#property script_show_inputs
//--- 旧文件的日期
input datetime InpFilesDate=D'2013.01.01 00:00';
//+------------------------------------------------------------------+
//| 脚本程序启动函数 |
//+------------------------------------------------------------------+
void OnStart()
{
string file_name; // 存储文件名称的变量
string filter="*.txt"; // 搜索文件的过滤器
datetime create_date; // 文件创建日期
string files[]; // 文件名称列表
int def_size=25; // 默认数组大小
int size=0; // 文件名称
//--- 为数组分配内存
ArrayResize(files,def_size);
//--- 在本地文件夹根目录下接收搜索句柄
long search_handle=FileFindFirst(filter,file_name);
//--- 检查FileFindFirst()函数是否成功执行
if(search_handle!=INVALID_HANDLE)
{
//--- 在循环中搜索文件
do
{
files[size]=file_name;
//--- 增加数组大小
size++;
if(size==def_size)
{
def_size+=25;
ArrayResize(files,def_size);
}
//--- 重置错误值
ResetLastError();
//--- 接收文件创建日期
create_date=(datetime)FileGetInteger(file_name,FILE_CREATE_DATE,false);
//--- 检查文件是否是旧的
if(create_date<InpFilesDate)
{
PrintFormat("%s file deleted!",file_name);
//--- 删除旧文件
FileDelete(file_name);
}
}
while(FileFindNext(search_handle,file_name));
//--- 关闭搜索句柄
FileFindClose(search_handle);
}
else
{
Print("Files not found!");
return;
}
//--- 检查已保留哪些文件
PrintFormat("Results:");
for(int i=0;i<size;i++)
{
if(FileIsExist(files[i]))
PrintFormat("%s file exists!",files[i]);
else
PrintFormat("%s file deleted!",files[i]);
}
}