//+------------------------------------------------------------------+
//| Demo_FolderDelete.mq5 |
//| Copyright 2000-2024, MetaQuotes Ltd. |
//| https://team.metaquotes.ru/email/view/599588 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2000-2024, MetaQuotes Ltd."
#property link "https://team.metaquotes.ru/email/view/599588"
#property version "1.00"
//--- Beschreibung
#property description "Das Skript zeigt ein Beispiel der Funktion FolderDelete()."
#property description "Erstellen Sie zunächst zwei Ordner, einer ist leer und der andere enthält eine Datei."
#property description "Beim Versuch einen nicht-leeren Ordner zu löschen, erhalten wir eine Fehler-und Warnmeldung."
//--- Beim Starten des Scripts zeigen Sie den Fenster mit den Eingabeparametern an
#property script_show_inputs
//--- Eingabeparameter
input string firstFolder="empty"; // Leerer Ordner
input string secondFolder="nonempty";// Ein Ordner mit einer Datei
string filename="delete_me.txt"; // der Dateiname, die Sie im Ordner secondFolder erstellen
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- Schreiben Sie die Datei-Handle hier
int handle;
//--- Finden Sie in welchem Ordner Sie arbeiten
string working_folder=TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Files";
//--- Debug-Meldung
PrintFormat("working_folder=%s",working_folder);
//--- Versuchen Sie einen leeren Ordner auf Pfad MQL5\Files zu erstellen
if(FolderCreate(firstFolder,0)) // 0 bedeutet, dass Sie in lokalem Ordner des Terminals arbeiten
{
//--- Zeigen Sie den vollen Pfad zum erstellten Ordner
PrintFormat("Ordner %s wurde erstellt",working_folder+"\\"+firstFolder);
//--- Fehlercode rücksetzen
ResetLastError();
}
else
PrintFormat("Ordner %s konnte nicht erstellt werden. Fehlercode %d",working_folder+"\\"+firstFolder, GetLastError());
//--- Erstellen Sie nun einen nicht-leeren mit der FileOpen()-Funktion
string filepath=secondFolder+"\\"+filename; // Formen Sie den Pfad zur Datei, die Sie öffnen, um in einen nicht vorhandenen Ordner zu schreiben
handle=FileOpen(filepath,FILE_WRITE|FILE_TXT); // Flag FILE_WRITE ist in diesem Fall erforderlich, sehen Sie Hilfe für FileOpen
if(handle!=INVALID_HANDLE)
PrintFormat("Datei %s wurde für lesen eröffnet",working_folder+"\\"+filepath);
else
PrintFormat("Date %s konnte nicht im Ordner %s erstellt werden. Fehlercode=",filename,secondFolder, GetLastError());
Comment(StringFormat("Vorbereiten auf Löschung der Dateien %s und %s", firstFolder, secondFolder));
//--- Eine kurze Pause von 5 Sekunden, so dass Sie die Meldung auf Chart lesen können
Sleep(5000); // Sleep() kann nicht in den Indikators verwendet werden!
//--- Im Dialogfenster fragen Sie den Benutzer
int choice=MessageBox(StringFormat("Möchten Sie Ordner %s und %s löschen?", firstFolder, secondFolder),
"Löschung der Ordner",
MB_YESNO|MB_ICONQUESTION); // Zwei Schaltflächen - "Yes" und "No"
//--- Aktionen je nach der gewählten Option
if(choice==IDYES)
{
//--- Den Kommentar aus dem Chart löschen
Comment("");
//--- Eine Meldung in "Experts" Journal hinzufügen
PrintFormat("Versuch die Ordner %s und %s zu löschen",firstFolder, secondFolder);
ResetLastError();
//--- Löschen den leeren Ordner
if(FolderDelete(firstFolder))
//--- Diese Meldung soll erscheinen, weil der Ordner leer ist
PrintFormat("Ordner %s wurde erfolgreich gelöscht",firstFolder);
else
PrintFormat("Ordner %s konnte nicht gelöscht werden. Fehlercode=%d", firstFolder, GetLastError());
ResetLastError();
//--- Löschen Sie den Ordner mit einer Datei
if(FolderDelete(secondFolder))
PrintFormat("Ordner %s wurde erfolgreich gelöscht", secondFolder);
else
//--- Diese Meldung soll erscheinen, weil der Ordner hat eine Datei
PrintFormat("Ordner %s konnte nicht gelöscht werden. Fehlercode=%d", secondFolder, GetLastError());
}
else
Print("Löschung wurde abgebrochen");
//---
}
|