Salut. Ce code a plusieurs fonctions :
-explorateur de dossiers (à la manière d'un DirListBox mais sans TreeView, navigation comme dans Explorer.exe)
-explorateur de fichiers (peut totalement remplacer le composant FileListBox)
-explorateur Windows (fichiers et dossiers vus ensembles)
Ses particularités :
-rapide ==> moins de 5s pour afficher (avec les icones) 2500 fichiers/dossiers (avec mon P4 3Ghz HT)
-vues des dossiers et fichiers en même temps
-détail des fichiers
-possibilité d'afficher ou non le path complet des objets
-possibilité de renommer fichiers et répertoire directement dans le controle
-possibilité de supprimer (ou bien déplacer vers la corbeille) des fichiers/dossiers
-possibilité de créé un fichier/dossier dans le répertoire courant
-affiche les répertoires/fichiers de tout attributs (au choix) dans la liste
-affiche les icones des fichiers/dossiers (récupère les icones contenues dans les fichier *.ico et *.exe, et affiche l'icone associée au type pour les autres extensions)
-nombre important de Properties et de Events disponibles
Détails des évenements que peut renvoyer le contrôle (hormis les classiques Mouse_Move, Click, ColumnClick, KeyUp....) :
-ItemClick(ByVal Item As ComctlLib.ListItem) ==> renvoie l'item cliqué
-PathChange(sOldPath As String, sNewPath As String) ==> lors du changement de répertoire
-ItemDblSelection(Item As ListItem) ==> double click sur un item
Détails des fonctions/procedures qui peuvent être appelées :
-GetSelectedItems ==> obtiens une liste des éléments sélectionnés
-RefreshListViewOnly ==> refresh du contrôle (pas de son contenu)
-Refresh ==> refresh du contenu du contrôle
-Clear ==> efface le contenu
-AddItemManually ==> ajoute manuellement un fichier/dossier/drive dans la liste
-RemoveItemManually ==> enlève un item manuellement
-DeleteSelectedItemsFromDisk ==> efface la sélection (corbeille ou définitif)
-GoParentFolder ==> va au dossier parent
-GetParentFolder ==> obtient le dossier parent
-CreateDirectoryInCurrentPath ==> créé un dossier
-CreateFileInCurrentPath ==> créé un fichier
-HitTest, GetFirstVisible et FindItem (identiques au listview)
Détails des propriétés/valeurs renvoyées du composants :
-ShowEntirePath ==> affiche ou non le path entier des items
-LabelWrap ==> identique que pour le listview
-View ==> identique que pour le listview, mais ce controle est FAIT pour fonctionner en mode DETAIL. Les autres modes ne sont PAS adaptés, bien que disponibles
-Appearence3D ==> apparence en 3D
-ListCount ==> nombre d'éléments dans la liste
-ListIndex ==> index de l'élément en cours
-ShowHiddenFiles
-ShowSystemFiles
-ShowReadOnlyFiles
-ShowDirectories
-ShowFiles
-ShowHiddenDirectories
-ShowSystemDirectories
-ShowReadOnlyDirectories
-AllowDirectoryEntering ==> permet d'entrer dans les sous-dossiers à partir du contrôle (double click ou clik et entrée)
-AllowFileDeleting ==> autorise la suppression (touche suppr) des fichiers
-AllowFileRenaming ==> autorise le renommage des fichiers
-AllowDirectoryRenaming
-AllowDirectoryDeleting
-DisplayIcones ==> affiche les icones ; 3 modes. Sans (pas d'icones), BasicIcones (une icone pour les drives, une pour les dossiers, et une pour les fichiers) et FileIcones (icones extraites des fichiers)
-AllowReorganisationByColumn ==> classement par click sur les colonnes (classement alphanumérique basique)
-BackColor
-ForeColor
-Enabled
-AllowMultiSelect
-Pattern ==> filtre d'extension (*.* pour tout, *.bmp|*.jpeg pour bmp et jpeg...)
-HideColumnHeaders ==> masque les titres des colonnes
-hWnd
-Path ==> chemin courant
-SizeDecimals ==> nombre de décimales de l'arrondi sur la taille
-ShowNormalDirectories
-ShowNormalFiles
-Files ==> nombre de fichiers affichés
-Directories ==> nombre de dossiers affichés
-Drives ==> nombre de drives affichés
-ListItems ==> permet de récupérer toutes les infos sur le contenu du contrôle (comme pour un ListView)
-Font ==> changer la font
-ItemWidth ==> largeur de la colonne "Nom"
Précisions sur le code source :
-utilisation des FileSystemObject (pour ouvoir facilement accéder aux dossiers système (pas possible avec Dir) et pour programmer rapidement)
-utilisation d'un ListView et d'une ImageList versions 5.0 (pour permettre d'appliquer un fichier *.manifest)
Voilà, j'ai finit la présentation du code ;)
Source / Exemple :
'Tout dans le *.zip
'Pour utiliser comme explorateur de dossier, je conseille de mettre
' View=lvwReport et ShowFiles=False et HideColumnHeaders=True
'Pour utiliser comme explorateur de fichiers (filelistbox), je conseille de mettre
' ShowDirectories = False
'Pour utiliser comme Explorer, je conseille de mettre
' View=lvwReport , ShowFiles=True, ShowDirectories=True
'Pour ne pas afficher les paths complets, c'est ShowEntirePath=False
Conclusion :
Ceci est un morceau d'un morceau d'un projet. Le sous-morceau du projet devrait venir dans pas trop trop longtemps (il s'agit d'un éditeur héxadécimal très complet), mais le gros projet en lui-même devra encore attendre...
N'oubliez pas de noter et de commenter ! Critiquez si vous voulez, mais de manière constructive uniquement :)
J'ai, a priori, pas vu de bugs, mais j'ai développé çà en quelques heures hier soir et ce matin ==> donc peut être qu'il y a des trucs à changer (j'ai fait çà très vite).
Le code est TRES commenté, comme dans toutes les nouvelles sources que je code.
!!! NECESSITE la référence Microsoft Scripting Runtime.
Aller dans projet, références et cochez là quand vous utilisez ce controle dans votre programme.
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.