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