FileSize

この関数は、ファイルサイズをバイト単位で返します。

ulong  FileSize(
  int  file_handle    // ファイルハンドル
  );

パラメータ

file_handle

[in] FileOpen() から戻されたファイル記述子

戻り値

int 型の値

注意事項

エラー情報を取得するには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!");
 }