//+------------------------------------------------------------------+ //| Demo_FolderClean.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 FolderClean()." #property description "Zuerst erstellen Sie Dateien in einem bestimmten Ordner mit FileOpen()." #property description "Dann, bevor Löschung der Dateien, erscheint die Warnung MessageBox()." //--- Beim Starten des Scripts zeigen Sie den Fenster mit den Eingabeparametern an #property script_show_inputs //--- Eingabeparameter input string foldername="demo_folder"; // Erstellen wir einen Ordner in MQL5/Files/ input int files=5; // Wie viele Dateien erstellen und löschen Sie //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { string name="testfile"; //--- Zuerst erstellen oder öffnen Sie Dateien im Datenordner des Terminals for(int N=0;N<files;N++) { //--- Dateiname in der Form von 'demo_folder\testfileN.txt' string filemane=StringFormat("%s\\%s%d.txt",foldername,name,N); //--- Öffnen Sie eine Date mot dem Flag zu schreiben, in diesem Fall wird Ordner 'demo_folder' automatisch erstellt int handle=FileOpen(filemane,FILE_WRITE); //--- Finden Sie, ob FileOpen() erfolgreich war if(handle==INVALID_HANDLE) { PrintFormat("Datei %s konnte nicht erstellt werden. Fehlercode ",filemane,GetLastError()); ResetLastError(); } else { PrintFormat("Datei %s wurde erfolgreich geöffnet",filemane); //--- Die offene Datei brauchen Sie nicht mehr, so schließen Sie sie FileClose(handle); } } //--- Überprüfen Sie, wie viele Dateien der Ordner hat int k=FilesInFolder(foldername+"\\*.*",0); PrintFormat("%d Dateien im Ordner %s gefunden",foldername,k); //--- Im Dialogfenster fragen Sie den Benutzer int choice=MessageBox(StringFormat("Sie sind dabei, %d Dateien aus dem Ordner %s zu löschen, fortsetzen?",foldername,k), "Löschung der Dateien aus dem Ordner", MB_YESNO|MB_ICONQUESTION); // Zwei Schaltflächen - "Yes" und "No" ResetLastError(); //--- Aktionen je nach der gewählten Option if(choice==IDYES) { //--- Sie beginnen zu löschen PrintFormat("Der Versuch, alle Dateien aus dem Ordner %s zu löschen",foldername); if(FolderClean(foldername,0)) PrintFormat("Die Dateien wurden erfolgreich gelöscht, %d Dateien bleiben im Ordner %s", foldername, FilesInFolder(foldername+"\\*.*",0)); else PrintFormat("Dateien konnten nicht aus dem Ordner %s gelöscht werden. Fehlercode %d",foldername,GetLastError()); } else PrintFormat("Löschung wurde abgebrochen"); //--- } //+------------------------------------------------------------------+ //| Gibt die Anzahl der Dateien im Ordner zurück | //+------------------------------------------------------------------+ int FilesInFolder(string path,int flag) { int count=0; long handle; string filename; //--- handle=FileFindFirst(path,filename,flag); //--- Wenn eine Datei gefunden wird, dann suchen Sie nach anderen if(handle!=INVALID_HANDLE) { //--- Dateinamen zeigen PrintFormat("File %s wurde gefunden",filename); //--- Erhöhen Sie den Zähler der gefundenen Dateien/Ordner count++; //--- Beginnen Sie suchen nach allen Dateien/Ordnern while(FileFindNext(handle,filename)) { PrintFormat("Datei %s wurde gefunden",filename); count++; } //--- Vergessen Sie nicht die Suche Handle zu schließen FileFindClose(handle); } else // Handle konnte nicht erhalten werden { PrintFormat("Suche nach Dateien im Ordner %s fehlgeschlagen",path); } //--- Ergebnis zurückgeben return count; } |