//+------------------------------------------------------------------+
//| 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;
}
|