Descargar MetaTrader 5

FileSize

Devuelve el tamaño del archivo en bytes.

ulong  FileSize(
   int  file_handle      // manejador del archivo
   );

Parámetros

file_handle

[in]  Descriptor de archivo devuelto por la función FileOpen().

Valor devuelto

Valor del tipo int.

Nota

Para obtener la información sobre el error hay que llamar a la función GetLastError().

Ejemplo:

//--- mostramos la ventana de parámetros de entrada al iniciar el script
#property script_show_inputs
//--- parámetros de entrada
input ulong  InpThresholdSize=20;        // umbral del tamaño de archivos en kilobytes
input string InpBigFolderName="big";     // carpeta para archivos grandes
input string InpSmallFolderName="small"// carpeta para archivos pequeños
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string   file_name;      // variable para almacenar los nombres de archivos
   string   filter="*.csv"// filtro para buscar archivos
   ulong    file_size=0;    // tamaño del archivo en bytes
   int      size=0;         // número de archivos
//--- imprimimos la ruta de la carpeta en la que vamos a trabajar
   PrintFormat("Trabajamos en la carpeta %s\\Files\\",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
//--- recepción del manejador de búsqueda en la raíz de la carpeta común de todos los terminales
   long search_handle=FileFindFirst(filter,file_name,FILE_COMMON);
//--- comprobamos si la función FileFindFirst()ha terminado su trabajo con éxito
   if(search_handle!=INVALID_HANDLE)
     {
      //--- movemos los archivos en el ciclo dependiendo de su tamaño
      do
        {
         //--- abrimos el archivo
         ResetLastError();
         int file_handle=FileOpen(file_name,FILE_READ|FILE_CSV|FILE_COMMON);
         if(file_handle!=INVALID_HANDLE)
           {
            //--- obtenemos el tamaño del archivo
            file_size=FileSize(file_handle);
            //--- cerramos el archivo
            FileClose(file_handle);
           }
         else
           {
            PrintFormat("Fallo al abrir el archivo %s, Código del error = %d",file_name,GetLastError());
            continue;
           }
         //--- imprimimos el tamaño del archivo
         PrintFormat("El tamaño del archivo %s es de %d bytes",file_name,file_size);
         //--- definimos la ruta para mover el archivo
         string path;
         if(file_size>InpThresholdSize*1024)
            path=InpBigFolderName+"//"+file_name;
         else
            path=InpSmallFolderName+"//"+file_name;
         //--- desplazamos el archivo
         ResetLastError();
         if(FileMove(file_name,FILE_COMMON,path,FILE_REWRITE|FILE_COMMON))
            PrintFormat("El archivo %s ha sido desplazado",file_name);
         else
            PrintFormat("Error, código = %d",GetLastError());
        }
      while(FileFindNext(search_handle,file_name));
      //--- cerramos el manejador de búsqueda
      FileFindClose(search_handle);
     }
   else
      Print("Files not found!");
  }


Actualizado: 2015.12.03