//+------------------------------------------------------------------+
//| Demo_FolderDelete.mq5 |
//| Copyright 2000-2024, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2000-2024, MetaQuotes Ltd."
#property link "https://www.mql5.com"
#property version "1.00"
//--- Açıklama
#property description "Bu script, FolderDelete() fonksiyonunun kullanım örneğini gösterir."
#property description "İlk olarak, iki klasör oluşturur, bunlardan biri boştur, ikincisi ise bir dosya içerir."
#property description "Boş olmayan bir klasörü silmeye çalıştığımızda hata dönüşü yapar ve bir uyarı mesajı gösterir."
//--- Giriş parametrelerinin iletişim penceresini, script çalıştırıldığında göster
#property script_show_inputs
//--- Giriş parametreleri
input string firstFolder="empty"; // Bir boş klasör
input string secondFolder="nonempty";// dosyanın oluşturulacağı klasör
string filename="delete_me.txt"; // secondFolder içinde oluşturulacak dosyanın ismi
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- Dosya tanıtıcısını buraya yaz
int handle;
//--- Hangi dosyayı aradığımızı öğren
string working_folder=TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Files";
//--- Bir hata ayıklama mesajı
PrintFormat("working_folder=%s",working_folder);
//--- MQL5\Files adresinde boş bir klasör oluşturmayı deniyor
if(FolderCreate(firstFolder,0)) // 0 değeri, terminalin yerel klasöründe çalıştığımız anlamına geliyor
{
//--- Tam adresi, oluşturulan klasöre gir
PrintFormat("%s klasörü oluşturuldu",working_folder+"\\"+firstFolder);
//--- Hata kodunu sıfırla
ResetLastError();
}
else
PrintFormat("%s klasörü oluşturulamadı. Hata kodu %d",working_folder+"\\"+firstFolder, GetLastError());
//--- şimdi, FileOpen() fonksiyonunu kullanarak, boş olmayan bir klasör yarat
string filepath=secondFolder+"\\"+filename; // Olmayan bir klasör içinde, yazma amaçlı açacağımız dosyanın adresini oluştur
handle=FileOpen(filepath,FILE_WRITE|FILE_TXT); // FILE_WRITE bayrağı bu durumda zorunlu, bakınız FileOpen
if(handle!=INVALID_HANDLE)
PrintFormat("%s dosyası, okuma amacıyla açıldı",working_folder+"\\"+filepath);
else
PrintFormat("%s dosyası, %s klasöründe oluşturulamadı. Hata kodu=",filename,secondFolder, GetLastError());
Comment(StringFormat("Prepare to delete folders %s and %s", firstFolder, secondFolder));
//--- Çizelgedeki mesajı okumak için 5 saniyelik kısa bir duraklama
Sleep(5000); // Sleep(), göstergelerde kullanılamaz!
//--- İletişim kutusu göster ve kullanıcıya sor
int choice=MessageBox(StringFormat("%s ve %s klasörlerini silmek istiyor musunuz?", firstFolder, secondFolder),
"Klasörler siliniyor",
MB_YESNO|MB_ICONQUESTION); // İki düğme - "Yes" ve "No"
//--- Seçilen versiyona göre bir eylem gerçekleştir
if(choice==IDYES)
{
//--- Çizelgeden yorumu sil
Comment("");
//--- "Experts" (Uzmanlar) bültenine bir mesaj ekle
PrintFormat("%s ve %s klasörleri siliniyor",firstFolder, secondFolder);
ResetLastError();
//--- Boş klasörleri sil
if(FolderDelete(firstFolder))
//--- Klasör boş olduğunda, şu mesajın gösterilmesi gerek
PrintFormat("%s klasörü başarıyla silindi",firstFolder);
else
PrintFormat("%s klasörü silinemedi. Hata kodu=%d", firstFolder, GetLastError());
ResetLastError();
//--- Bir dosya içeren klasörü sil
if(FolderDelete(secondFolder))
PrintFormat("%s klasörü başarıyla silindi", secondFolder);
else
//--- Klasör dosya içeriyorsa, şu mesajın gösterilmesi gerekir
PrintFormat("%s klasörü silinemedi. Hata kodu=%d", secondFolder, GetLastError());
}
else
Print("Silme işlemi iptal edildi");
//---
}
|