//+------------------------------------------------------------------+
//| 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"
//--- la description
#property description "Le script montre un exemple de l'utilisation FolderDelete()."
#property description "D'abord, deux dossiers sont créés, l'un est vide et l'autre contient le fichier."
#property description "Si vous essayez de supprimer un dossier non vide vous recevrez l'erreur et l'avertissement."
//--- montrons la fenêtre des paramètres d'entrée au lancement du script
#property script_show_inputs
//--- les paramètres d'entrée
input string firstFolder="empty"; // un dossier vide
input string secondFolder="nonempty";// le dossier, dans lequel il y aura un fichier
string filename="delete_me.txt"; // le nom du fichier que nous créons dans le dossier secondFolder
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- écrivons ici le handle du fichier
int handle;
//---savons dans quel dossier nous travaillons
string working_folder=TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Files";
//--- le message de débogage
PrintFormat("working_folder=%s",working_folder);
//--- la tentative de créer le dossier vide par rapport au chemin MQL5\Files
if(FolderCreate(firstFolder,0)) // 0 signifie que nous travaillons dans un dossier local du terminal
{
//--- déduisons un chemin complet jusqu'au dossier créé
PrintFormat("On a créé le dossier %s",working_folder+"\\"+firstFolder);
//--- oblitérons le code de l'erreur
ResetLastError();
}
else
PrintFormat("On n'a pas réussi à créer le dossier %s. Le code de l'erreur %d",working_folder+"\\"+firstFolder, GetLastError());
//--- maintenant nous créons le dossier non vide à l'aide de la fonction FileOpen()
string filepath=secondFolder+"\\"+filename; // formeront le chemin vers le fichier lequel nous voulons ouvrir pour l'enregistrement dans un dossier inexistant
handle=FileOpen(filepath,FILE_WRITE|FILE_TXT); // le drapeau FILE_WRITE dans ce cas est nécessaire, à voir la référence à la fonction FileOpen
if(handle!=INVALID_HANDLE)
PrintFormat("on a ouvert le fichier pour la lecture %s",working_folder+"\\"+filepath);
else
PrintFormat("On n'a pas réussi à créer le fichier %s dans le dossier %s. Le code de l'erreur =",filename,secondFolder, GetLastError());
Comment(StringFormat("préparons de supprimer les dossiers %s et %s", firstFolder, secondFolder));
//--- Une petite pause à 5 secondes pour que nous puissions lire le message sur le graphique
Sleep(5000); // Sleep() on ne peut pas utiliser dans les indicateurs!
//--- déduisons la boîte de dialogue et nous demandons à l'utilisateur
int choice=MessageBox(StringFormat("Supprimer les dossiers %s et %s?", firstFolder, secondFolder),
"La suppression des dossiers",
MB_YESNO|MB_ICONQUESTION); // Il y aura deux boutons - "Yes" et "No"
//--- effectuons des actions selon l'option choisie
if(choice==IDYES)
{
//--- effaçons le commentaire sur le graphique
Comment("");
//--- déduisons le message au journal "Experts"
PrintFormat("Essayons de supprimer les dossiers %s et %s",firstFolder, secondFolder);
ResetLastError();
//--- supprimons un dossier vide
if(FolderDelete(firstFolder))
//--- doivent voir ce message, puisque le dossier est vide
PrintFormat("Le dossier %s est supprimé avec succès",firstFolder);
else
PrintFormat("On n'a pas réussi à supprimer le dossier %s. Le code de l'erreur=%d", firstFolder, GetLastError());
ResetLastError();
//--- supprimons le dossier qui contient le fichier
if(FolderDelete(secondFolder))
PrintFormat("Le dossier %s est supprimé avec succès", secondFolder);
else
//--- doivent voir ce message, puisque dans le dossier il y a un fichier
PrintFormat("On n'a pas réussi à supprimer le dossier %s. Le code de l'erreur=%d", secondFolder, GetLastError());
}
else
Print("La suppression est annulée");
//---
}
|