Fileview ==> usercontrol pour explorer fichiers et/ou dossiers (remplace dirlistbox et/ou filelistbox)

Soyez le premier à donner votre avis sur cette source.

Vue 9 099 fois - Téléchargée 1 454 fois

Description

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.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
la doc n'en parle pas

http://msdn.microsoft.com/en-us/library/bb761389(VS.85).aspx

mais un bon paquet, pas de souci là dessus
Messages postés
30
Date d'inscription
mardi 21 août 2007
Statut
Membre
Dernière intervention
4 octobre 2010

salut violent_ken
beau travail!
Je suis toujours entrain de fouiller dans les archives par ce que selon moi la vielle école est plus éfficace!
une question un imagliste peut contenir combien de item sans craquer?
merci et bonne prog a tous
Messages postés
19
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
1 août 2007

Bonjour,

Tres bien fait et tres pratique, exactement ce dont j'avais besoin.

Cependant, deux questions :

1/ J'ai un bug lorsque je trie en cliquant sur un des headers lorsqu'aucun fichier n'est present (je ne visualise que les fichiers, pas les dossiers...)

2/ Comment definir la largeur des colonnes et si c'est possible definir l'ordre des colonnes ? En gros me faudrait juste le nom et la date, le reste soit je l'enleve soit je le met a la fin...

Merci encore !
Messages postés
1812
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
1
Salut, c'est normal : mon code est en VB6, donc pas la même version que VB 2005 Express ^^
Donc tu ne pourras pas essayer mon code avec ce logiciel.

@+
Messages postés
7
Date d'inscription
mardi 9 mai 2006
Statut
Membre
Dernière intervention
15 avril 2007

Bonjour,
Je suis débutant en VB !
Je voulais voir a quoi ressemblait l'explorateur mais j'ai pas réussit a le lire avec VB 2005 express ??
C'est normal ?

@+

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.