文件大小

函数返回文件字节大小。

ulong  FileSize(
   int  file_handle    // 文件句柄
   );

参量

file_handle

[in]  通过 FileOpen()返回文件描述符。

返回值

整型值。

注释

调用GetLastError()函数获得错误信息。

示例 :

//--- 启动脚本时显示输入参数的窗口
#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!");
  }