FileIsExist

Bir dosyanın var olup olmadığını kontrol eder.

bool  FileIsExist(
   const string  file_name,       // Dosya ismi
   int           common_flag=0    // Arama alanı
   );

Parametreler

file_name

[in]  Kontrolü yapılacak dosyanın ismi

common_flag=0

[in]  Dosyanın konumunu belirleyen bayrak. common_flag = FILE_COMMON ise dosya, tüm kullanıcılar için paylaşılan bir klasöre  \Terminal\Common\Files, aksi durumda bir yerel klasöre yerleştirilmiştir.

Dönüş değeri

Dosya mevcut ise 'true' değerine dönüş yapar.

Not

Kontrol edilen dosyanın bir alt-dizin olması mümkündür. Bu durumda FileIsExist() fonksiyonu false dönüşü yapacaktır ve 5018 kodlu hata, _LastError değişkenine kaydedilecektir - "Bu bir dizin, dosya değil" (FileFindFirst fonksiyonunun kullanımına bakınız).

Dosya işlemleri, MQL5 dili içerisinde güvenlik amacıyla sıkı şekilde kontrol edilmektedir. İşlemleri, MQL5 araçları ile yürütülen dosyalar, dosya güvenlik-ortamı (sandbox) dışında yer alamaz.

common_flag = FILE_COMMON ise, fonksiyon, dosyayı tüm terminallerin ortak klasöründe arayacaktır \Terminal\Common\Files, aksi durumda ise yerel bir klasörde arama yapacaktır (MQL5\Files veya sınama durumunda MQL5\Tester\Files).

Örnek:

//--- script çalıştığında giriş parametrelerinin penceresini göster
#property script_show_inputs
//--- eski dosya için tarih
input datetime InpFilesDate=D'2013.01.01 00:00';
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string   file_name;      // isimleri depolamak için bir değişken
   string   filter="*.txt"// dosyaları aramak için filtre
   datetime create_date;    // dosya oluşturulma zamanı
   string   files[];        // dosya isimlerinin listesi
   int      def_size=25;    // varsayılan dizi büyüklüğü
   int      size=0;         // dosyaların sayısı
//--- dizi için bellek tahsis et
   ArrayResize(files,def_size);
//--- yerel klasörün kök dizinindeki arama işleyicisini al
   long search_handle=FileFindFirst(filter,file_name);
//--- FileFindFirst() uygulaması başarılı mı kontrol et
   if(search_handle!=INVALID_HANDLE)
     {
      //--- dosyaları döngüde ara
      do
        {
         files[size]=file_name;
         //--- dizi büyüklüğünü artır
         size++;
         if(size==def_size)
           {
            def_size+=25;
            ArrayResize(files,def_size);
           }
         //--- hata değerini sıfırla
         ResetLastError();
         //--- dosya oluşturulma zamanını al
         create_date=(datetime)FileGetInteger(file_name,FILE_CREATE_DATE,false);
         //--- dosya eski mi kontrol et
         if(create_date<InpFilesDate)
           {
            PrintFormat("%s dosyası silinmiş!",file_name);
            //--- eski dosyayı sil
            FileDelete(file_name);
           }
        }
      while(FileFindNext(search_handle,file_name));
      //--- arama işleyicisini kapa
      FileFindClose(search_handle);
     }
   else
     {
      Print("Dosyalar bulunamadı!");
      return;
     }
//--- kalan dosyaları kontrol et
   PrintFormat("Sonuçlar:");
   for(int i=0;i<size;i++)
     {
      if(FileIsExist(files[i]))
         PrintFormat("%s dosyası mevcut!",files[i]);
      else
         PrintFormat("%s dosyası silinmiş!",files[i]);
     }
  }

Ayrıca Bakınız

FileFindFirst