文件大小

函数返回文件字节大小。

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!");

  }