FileDelete

Elimina el archivo especificado en una carpeta local del terminal de cliente.

bool  FileDelete(
   const string  file_name,     // nombre del archivo a eliminar
   int           common_flag=0  // ubicación del archivo a eliminar
   );

Parámetros

file_name

[in]  Nombre del archivo.

common_flag=0

[in] Bandera que determina la ubicación del archivo. Si common_flag=FILE_COMMON, entonces el archivo se encuentra en una carpeta compartida de todos los terminales de cliente \Terminal\Common\Files. De lo contrario, el archivo está ubicado en una carpeta local

Valor devuelto

En caso de fallo la función devuelve false.

Nota

Por razones de seguridad el trabajo con los archivos en el lenguaje MQL5 se encuentra bajo un estricto control. Los archivos con los que se realizan las operaciones de archivos utilizando los medios del lenguaje MQL5 no pueden estar fuera del entorno protegido de archivos (file sandbox).

Elimina el archivo especificado en una carpeta local del terminal de cliente (MQL5\Files o MQL5\Tester\Files en caso de prueba). Pero si hay common_flag=FILE_COMMON, la función elimina el archivo de la carpeta compartida de todos los terminales de cliente \Terminal\Common\Files.

Ejemplo:

//--- mostramos la ventana de parámetros de entrada al iniciar el script
#property script_show_inputs
//--- fecha para archivos antiguos
input datetime InpFilesDate=D'2013.01.01 00:00';
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string   file_name;      // variable para almacenar los nombres de archivos
   string   filter="*.txt"// filtro para la búsqueda de archivos
   datetime create_date;    // fecha de creación del archivo
   string   files[];        // lista con los nombres de los archivos
   int      def_size=25;    // tamaño del array por defecto
   int      size=0;         // número de archivos
//--- adjudicar memoria para array
   ArrayResize(files,def_size);
//--- recibir el manejador de búsqueda en la raíz de la carpeta local
   long search_handle=FileFindFirst(filter,file_name);
//--- comprobamos si la función FileFindFirst() se ha ejecutado con exito
   if(search_handle!=INVALID_HANDLE)
     {
      //--- repasamos los archivos en el ciclo
      do
        {
         files[size]=file_name;
         //--- aumentamos el tamaño del array
         size++;
         if(size==def_size)
           {
            def_size+=25;
            ArrayResize(files,def_size);
           }
         //--- reseteamos el valor del error
         ResetLastError();
         //--- obtenemos la fecha de creación del archivo
         create_date=(datetime)FileGetInteger(file_name,FILE_CREATE_DATE,false);
         //--- comprobamos si el archivo es antiguo
         if(create_date<InpFilesDate)
           {
            PrintFormat("¡El archivo %s ha sido eliminado!",file_name);
            //--- eliminamos el archivo antiguo
            FileDelete(file_name);
           }
        }
      while(FileFindNext(search_handle,file_name));
      //--- cerramos el manejador de búsqueda
      FileFindClose(search_handle);
     }
   else
     {
      Print("Files not found!");
      return;
     }
//--- comprobamos qué archivos se han quedado
   PrintFormat("Resultados:");
   for(int i=0;i<size;i++)
     {
      if(FileIsExist(files[i]))
         PrintFormat("¡El archivo %s existe!",files[i]);
      else
         PrintFormat("¡El archivo %s ha sido eliminado!",files[i]);
     }
  }