Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Utilitaire de suppression de fichiers Ven 23 Juin 2017 - 13:00 | |
| Bonjour à tous, Je vous propose un petit utilitaire que j'ai fait spécialement pour moi. Le but initial était de supprimer tous le fichiers *.bak d'un dossier "mes prog Panoramic" (c'est un exemple) d'une manière assez rapide. Ensuite cela m'a permis de me familiariser avec les mots-clés FILE_... , DIR_... et aussi de poster une belle boulette hier sur ce forum. Je vous le présente dans une version volontairement limitée à 2 extensions de fichiers, *.bak et *.txt , ceci pour éviter des catastrophes. Si l'un d'entre vous trouve une solution pour que le programme n'affiche pas les dossiers système et les fichiers cachés, je suis preneur. Avant de copier le code ci-dessous et de le lancer lisez ceci: AVERTISSEMENT: l'utilisation de cet utilitaire suppose que l'utilisateur sait ce qu'il fait et qu'il sache ce qu'est une extension de fichier. Je décline toute responsabilité, sur les pertes de fichiers qui pourraient résulter d'actions inappropriées de l'utilisateur. Un conseil: lisez l'aide contenu dans cet utilitaire. - Code:
-
' Utilitaire de Suppression des fichiers *.bak d'un dossier pa Jean Claude juin/2017 ' SupBak.bas dir_change dir_current$ : error_french dim_label_general() : Objets() : menu()
a$="AVERTISSEMENT: l'utilisation de cet utilitaire suppose que l'utilisateur sait ce qu'il fait et qu'il sache ce qu'est une extension de fichier." a$=a$+chr$(13)+"L'auteur de cet utilitaire décline toute responsabilité, sur les pertes de fichiers qui pourraient résulter d'actions inappropriées de l'utilisateur." a$=a$+chr$(13)+chr$(13)+"Un conseil: lisez l'aide de cet utilitaire." message a$
' à faire: choix d'une extention personnalisée
END rem ============================================================================ Go: inactive MGo% if Extension$="" then return a$="Vous avez choisi l'extension ''"+Extension$+"''" a$=a$+chr$(13)+"ATTENTION: les actions de suppression de fichiers que vous pourriez décider," a$=a$+chr$(13)+"relèvent de votre responsabilité." a$=a$+chr$(13)+chr$(13)+"Soyez vigilant !" a$=a$+chr$(13)+chr$(13)+"Si vous avez un doute ne cliquez pas sur le bouton ''OK'' de ce message, sortez par sa croix rouge." if message_warning_ok(a$)=1 active list1% : Rep$="C:\":DIR_CHANGE Rep$ : afi_rep(list1%) NewRep$=Rep$ else message "Votre sagesse est écoutée. Le programme va fermer" : terminate end_if RETURN
Aide: a$="RAPPEL : l'utilisation de cet utilitaire suppose que l'utilisateur sait ce qu'il fait et qu'il sache ce qu'est une extension de fichier." a$=a$+chr$(13)+"L'auteur de cet utilitaire décline toute responsabilité, sur les pertes de fichiers qui pourraient résulter d'actions inappropriées de l'utilisateur." a$=a$+chr$(13)+chr$(13)+"Pour commencer : vous devez choisir l'extension, des fichiers que vous souhaitez supprimer, par le menu ''Extension''." a$=a$+chr$(13)+"Ensuite, cliquez sur ''GO'' dans le menu, lisez et validez le message d'avertissement." a$=a$+chr$(13)+chr$(13)+"Dans la colonne de gauche s'affiche tous les dossiers du répertoire sélectionné précédemment (Remarque: le logiciel commence, à la racine, par le dossier ''C:'')." a$=a$+chr$(13)+"Dans la colonne de droite s'affichent tous les fichiers contenus dans le dossier sélectionné, ils correspondent à l'extension que vous avez choisie. (Remarque: le bouton ''supprimer'' devient actif)." a$=a$+chr$(13)+"Dans le bandeau de la fenetre s'affiche le chemin complet du dernier dossier sélectionné." a$=a$+chr$(13)+chr$(13)+"À ce stade vous pouvez choisir de faire des suppressions dans la liste de droite OU de cliquer sur un nouveau dossier dans la liste de gauche." a$=a$+chr$(13)+chr$(13)+"SUPPRESSION 1) : un premier message vous demande si vous souhaitez supprimer des fichiers de la liste (Remarque: si vous répondez non, le logiciel est réinitialisé)." a$=a$+chr$(13)+chr$(13)+"SUPPRESSION 2) : vous avez la possibilité de ne supprimer qu'une partie des fichiers affichés dans la liste de droite. Il suffit de répondre OUI ou NON à la question." a$=a$+chr$(13)+chr$(13)+"SUPPRESSION 2) (suite) : pour chaque fichier la question de la suppression est posée. Ils disparaissent de la liste même SI VOUS AVEZ RÉPONDU NON, ne soyez pas inquiet, le nom du fichier n'est plus dans la liste mais il est toujours dans le dossier sélectionné (il n'est pas supprimé)." a$=a$+chr$(13)+chr$(13)+"À la fin des suppressions le logiciel est réinitialisé et c'est également le cas quand il il n'y a plus de sous-dossiers." a$=a$+chr$(13)+chr$(13)+"Pour terminer : à tout moment vous pouvez utiliser le bouton ''Recommencer'' pour réinitialiser l'utilitaire." message a$ RETURN
Extension: active MGo% : inactive Mext% if number_click=Mbak% then Extension$=".bak" if number_click=Mtxt% then Extension$=".txt" Return
explore: active BtRec% NewRep$=NewRep$+item_index$(list1%)+"" Caption 0,left$(NewRep$,len(NewRep$)-1) c$="" : clear list1% : clear list2% : DIR_CHANGE NewRep$ : afi_rep(list1%) if count(list1%)=0 a$=left$(NewRep$,len(NewRep$)-1) : NewRep$=a$ ' item_add list1%,NewRep$ if c$=".." message " dossier vide " : gosub Recommencer : return else if c$="" message " plus de sous-dossier " : gosub Recommencer : return else message " plus de sous-dossier " :' gosub Recommencer : return if count(list2%)>0 then item_add list1%,NewRep$ : inactive list1% end_if end_if end_if RETURN
Sup: inactive list1% : DIR_CHANGE NewRep$ if message_confirmation_yes_no("Voulez-vous réellement faire une (ou des) suppression(s) de fichiers dans le dossier "+chr$(13)+chr$(13)+left$(NewRep$,len(NewRep$))+" ?")=1 for n%=1 to count(list2%) a$=item_read$(list2%,1) if message_confirmation_yes_no("Voulez-vous supprimer ce fichier: "+a$+" ?")=1 item_delete list2%,1 : file_delete a$ else item_delete list2%,1 end_if next n% gosub Recommencer : return else gosub Recommencer : return end_if RETURN
Recommencer: clear list1% : clear list2% : inactive BtSup% : inactive BtRec% : active Mext% : Extension$="" RETURN rem ============================================================================ SUB menu() dim MGo%,Mext%,Mbak%,Mtxt%,Maide% : label Go,Extension,Aide no%=no%+1 : Main_menu no% no%=no%+1 : MGo%=no% : sub_menu no% : parent no%,no%-1 : caption no%,"GO !" : on_click no%,Go no%=no%+1 : Mext%=no% : sub_menu no% : parent no%,no%-2 : caption no%,"Choix Extension" no%=no%+1 : Mbak%=no% : sub_menu no% : parent no%,no%-1 : caption no%,"*.bak" : on_click no%,Extension no%=no%+1 : Mtxt%=no% : sub_menu no% : parent no%,no%-2 : caption no%,"*.txt" : on_click no%,Extension no%=no%+1 : Maide%=no% : sub_menu no% : parent no%,no%-5 : caption no%,"Aide" : on_click no%,Aide inactive MGo% END_SUB
SUB Objets() ' Form 0 width 0,750 : height 0, 600: caption 0, "Suppession de fichiers" : application_title "Suppession de fichiers" top 0,(screen_y/2)-(height(0)/2) : left 0,(screen_x/2)-(width(0)/2) color 0,200,200,255 : font_bold no% no%=no%+1 : list1%=no% : list no% : width no%,400 : height no%,height_client(0)-30 : left no%,5 : top no%,5 on_click no%,explore no%=no%+1 : list2%=no% : list no% : width no%,200 : height no%,height_client(0)-30 : left no%,width(list1%)+10 : top no%,5 no%=no%+1 : BtSup%=no% : button no% : caption no%,"Suppression": left no%,width(list1%)+width(list2%)+20 : top no%,10 width no%,100 : inactive BtSup% : on_click BtSup%,Sup no%=no%+1 : BtRec%=no% : button no% : caption no%,"Recommencer": left no%,width(list1%)+width(list2%)+20 : top no%,55 width no%,100 : inactive BtRec% : on_click BtRec%,Recommencer END_SUB
SUB dim_label_general() dim n%,no%,list1%,list2%,BtSup%,BtRec% dim a$,b$,c$,Rep$,NewRep$,Extension$ label explore,Sup,Recommencer END_SUB
rem ============================================================================ SUB afi_rep(num_list%) if Extension$=".dll" then message "Accès refusé pour les dll" : terminate if Extension$=".exe" then message "Accès refusé pour les *.exe" : terminate if Extension$=".bas" then message "Accès refusé pour les *.bas" : terminate a$ = FILE_FIND_FIRST$ WHILE a$ <> "_" ' IF a$ <> "." AND a$ <> ".." if file_extract_extension$(a$)="" ' accès interdit au boot et à l'os interdit b$=upper$(a$) if left$(b$,4)="BOOT" else if left$(b$,2)="OS" else item_add num_list%,a$ end_if end_if else c$=file_extract_name$(a$) if right$(c$,4)=Extension$ item_add list2%,c$ : active BtSup% end_if end_if ' END_IF a$ = FILE_FIND_NEXT$ END_WHILE FILE_FIND_CLOSE END_SUB
Soyez prudent !A+ Réédition: 23/06/2017 à 16:37 suite bug signalé par Yannick.
Dernière édition par Jean Claude le Sam 24 Juin 2017 - 9:52, édité 5 fois | |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 23 Juin 2017 - 14:20 | |
| @ Jean Claude, Y a un souci. Je sélectionne l' extension Je clique sur Go là j' ai les dossier du répertoire courant ( le bureau) Je clique sur un des dossiers Réponse = dossier vide (normal, il l' est) mais l' affichage du premier liste me met le nom du dossier sauf que ce nom est tronqué. Le nom est "Boite à Outils" et l' affichage "Boite à Outil" manque le "s". Si je clique dessus bug. | |
|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Utilitaire de suppression de fichiers Ven 23 Juin 2017 - 16:41 | |
| OK j'ai trouvé le problème, c'est arrangé.
J'ai réédité le code corrigé en début de post.
J'ai ajouté le répertoire sélectionné dans le bandeau de la fenêtre pour plus de lisibilité.
Par contre, normalement ça devrait commencé à la racine "C:" , à moins que tu ais modifié le code ?
A+ | |
|
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Utilitaire de suppression de fichiers Ven 23 Juin 2017 - 17:17 | |
| Un petit truc qui serait sympa mais qui ferait encore une chose en plus dans la to do liste de Jack serait de pouvoir avoir une adresse UNC comme racine à la place d'une lettre de lecteur (adresse UNC: \\NomOuIpDuServeur\NomDuPartage\Dossier\NomDuFichier)
=> Cela permet d'accéder aux contenus des lecteurs réseaux facilement. Il y a de plus en plus d'équipements connectés avec des espaces mémoires partagés. => Cela devrait même permettre d'accéder au contenu de son téléphone s'il est connecté et autres usages.
Bon, c'est une remarque un peu hors sujet, mais il y a peut être déjà un moyen de le faire pour l'adapter à cet utilitaire d'où cette remarque sur ce post. | |
|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Utilitaire de suppression de fichiers Ven 23 Juin 2017 - 17:21 | |
| Je viens de comprendre le problème de démarrage de la recherche à la racine. Il manquait l'antislash \ à la ligne 24 du programme sur le forum. - Code:
-
active list1% : Rep$="C:\":DIR_CHANGE Rep$ : afi_rep(list1%)
Je l'ai corrigé, mais si votre recherche ne commence pas à la racine, remplacé la ligne 24 par celle ci-dessus en vérifiant que la copie du forum ne bouffe pas l'antislash \. Ce programme n'a pas d'intérêt s'il commence par le bureau, vous ne pourrez jamais aller ailleurs. A+ PS: on s'est croisé Jicehel, as-tu testé le code ? Pour ta remarque: elle n'est pas tout à fait hors sujet. Mais dans un sujet comme celui-ci elle risque de passer aux oubliettes. | |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Ven 23 Juin 2017 - 19:31 | |
| @ Jean Claude, Je ne peux pas tester pour l' instant, j' ai pris un carton rouge et me voilà expulser de ma machine par mon minecrafter de fils. Le nom commencé bien par c:\ c'est moi qui est zappe le début de l' adresse. Mais, le programme, lui, m' avait bien piqué le s de outils. Des que je peux je re-teste ton programme. @ Jicehel, Ta suggestion est très intéressante mais poste la dans les demandes. Ici, elle va passer à la trappe. | |
|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Utilitaire de suppression de fichiers Ven 23 Juin 2017 - 20:11 | |
| T'inquiète pas Yannick, j'ai réparé les problèmes que tu as signalé. D'ailleurs, merci de me les avoir fait découvrir en testant le programme. Il n'y a rien qui presse, il faut bien que les Minecrafter se défoulent... A+ | |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Ven 23 Juin 2017 - 22:03 | |
| D' autant au' il me donne satisfaction et me rassure sur son avenir. Ce n 'est pas le lieu pour en parler mais cela justifie que je fasse un effort en lui laissant l' ordi le week-end et que je mette Panoramic sur pause. | |
|
Contenu sponsorisé
| Sujet: Re: Utilitaire de suppression de fichiers | |
| |
|