[vb6] ymxplorer : double explorateur de fichiers

Soyez le premier à donner votre avis sur cette source.

Vue 14 382 fois - Téléchargée 1 492 fois

Description

Double explorateur de fichiers, DragDrop dans les MSHFlexGrid,
Fonctions de remplacement (voir ma source ReplaceInFile), très pratique pour manipuler des fichiers texte, html... etc. (très utile pour le webMastering)
Recherche dans les sous-dossiers... et bien d'autres fonctionnalités qui vont s'ajouter.

J'ai fabriqué un "faux" msgbox pour le dialogue du type "Voulez-vous déplacer ce fichier en lecture seule" OUI - NON - OUI pour tout - NON pour tout... etc.

J'utilise deux forms (les 2 trieviews de Renfield ne fonctionnaient pas correctement dans une même form)
L'affichage se fait dans une (donc 2) MSHFlexGrid qui permet de trier par colonne en cliquant sur le titre.
J'ai ajouté les animations "gif" (imageList) de rechercher, copier/ déplacer et supprimer. (16 images par animation)

L'utilisateur garde toujours la main pendant la copie même de gros fichiers (grâce notamment à l'API CopyFileEx)

ymXplorer permet de comparer des dossiers et d'y trouver des doublons. J'y adjoindrai la synchronisation de fichiers.
Voir aussi l'aide sur les fonctions de recherche : info_fct.rtf

Source / Exemple :


'merci à Renfield pour son treeview façon exploreur (dont ISHF_Ex.tlb)
'(http://www.vbfrance.com/code.aspx?ID=7433)
'pour ReyXpLight.ocx (contrôles style XP)
'(http://www.vbfrance.com/code.aspx?ID=6656)
'la gestion des 2 forms dans une MDIForm
'http://www.vbfrance.com/code.aspx?ID=17487

'recherche dans les sous-dossiers :
'Je me suis largement inspiré du code de CLM'RECHERCHE
'http://www.codes-sources.com/code.aspx?ID=3465

'Merci à FixNyl pour la gestion de la molette souris
'http://www.vbfrance.com/codes/EVENEMENT-WHEEL-SOURIS_6148.aspx

'j'utilise également les api CopyFileEx et MoveFileEx pour la gestion des fichiers
'fonction TrashFile (corbeille) à l'aide de l'API SHFileOperation

'Pour les icones http://www.vbfrance.com/code.aspx?ID=31035
'Pour les ShortCuts (raccourcis), c'est avec la Function SetPixel Lib "gdi32"

Conclusion :


Ce double explorateur de fichiers n'a pas pour but de concurrencer l'explorateur de fichiers Windows ni tout autre logiciel.
Allez-y doucement avec le DraDrop dans les MshFlexGrid, cliquez une fois puis Drag. (encore à améliorer)

Faites vos essais dans un dossier temporaire pour éviter tout risque (ou dans une clé USB)
Les fichiers supprimés vont dans la corbeille (fonction TrashFile à l'aide de l'API SHFileOperation)

ATTENTION : Arrêter le programme :
Sortir proprement en passant par ymXplorer (logiciel-> end) et non par le stop de l'IDLE vb6 sous peine de plantage.

ENFIN, il faut référencer les ocx (MouseEvent.ocx et Rey_ProgressBar.ocx), le tlb (ISHF_Ex.tlb) et Rey_SubClasser.dll (normalement, c'est ok dans le projet)

Il vous faudra également COMCTL32.OCX (mais ce ne devrait pas être un problème, c'est inclus dans vb6)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
160
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
21 avril 2015

MAJ effectuée (dont Rey_SubClasser.dll de Renfield)
Messages postés
160
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
21 avril 2015

Petit oubli à combler lors de la prochaine MAJ :

Il manque une dll (Rey_SubClasser.dll) suite à l'utilisation de ReyXpLight.ocx
Elle est dispo ici :
http://www.vbfrance.com/code.aspx?ID=6656

Désolé...

Bon, j'ai trouvé pour les images de raccourcis avec Function SetPixel Lib "gdi32"
Je n'ai toujours pas terminé mais cette version est déjà une étape.
Messages postés
160
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
21 avril 2015

Merci Foued82,

J'ajouterai, comme je l'ai dit, quelques fonctions supplémentaires (comparaisons et synchro notamment)
Le DragDrop est à améliorer (je passerai par du complètement manuel avec colorisation des cellules au lieu du select de base sur la MshFlexGrid qui m'embête plutôt qu'autre chose... Donc, j'ajouterai un bit dans MshFlexGrid.rowData -> pour le select, donc refonte en perspective des procédures car je dépasse les fatidiques 8 bits d'infos, même si .rowData est en long... Aïe...

Si quelqu'un a la bidouille pour récupérer l'icone lorsqu'il s'agit d'un ShortCut, je suis preneur :

Lorsqu'il s'agit d'un fichier *.lnk, je récupère l'icone cible et non celle avec la "flèche" shortCut.
J'ai commencé avec me prendre la tête avec du traitement d'images via GetDIBits et SetDIBitsToDevice (voir aussi http://www.vbfrance.com/code.aspx?ID=21329) En fait, j'ai un souci de synchro RGB, je n'arrive pas trop à caler les deux images à fusionner... Bref, il y a peut-être plus simple que de recalculer une icone ShortCut.

Voilà l'état de mes réflexions...

Cordialement,
ym_trainz
Messages postés
4
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
5 février 2009

C'est une super application que je définirai comme étant un petit logiciel de gestion de sauvegarde avec des petits + comme le filtre ou le replace... unique en son genre, je vous laisse découvrir cette applic qui fera certainement partie des indispensables de votre batterie de software...

Merci YM
Messages postés
160
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
21 avril 2015

Merci beaucoup FMAPI !

Ca fait plaisir !
En effet, le trieView est un peu lourd mais je ne vois pas trop comment faire autrement.

Je vais en effet ajouter les fonctions auxquelles j'ai pensé, notamment la synchro et l'amélioration du DragMove.
Pour l'heure, je vais très prochainement mettre "nouveau -> dossier / raccourci / Fichier" C'est pratiquement ok.

Merci encore et @bientôt pour tes critiques constructives qui vont grandement aider la communauté ;-)

Cordialement,
ym_trainz
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.