IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Explorateur de fichier - récuperer les icones des fichiers


Sujet :

C#

  1. #1
    Membre habitué Avatar de Khrysby
    Homme Profil pro
    Chef de projet
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 144
    Points
    144
    Par défaut Explorateur de fichier - récuperer les icones des fichiers
    Bonjour,

    J'ai besoin dans mon application d'un explorateur de fichier... Donc j'ai commencé à en faire un avec un TreeView... Pour l'instant, je liste tout mes fichiers mais j'aimerai retrouver leur icône devant et l'icône de dossier devant chaque dossier...

    Est-ce que quelqu'un a déjà utiliser ou fait un explorateur comme celui ci ?
    J'ai bien trouvé des bout de code pour retrouver une icône d'un fichier mais je pense qu'il y a plus simple.

    Merci d'avance...

  2. #2
    Membre régulier Avatar de Onlava
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Points : 112
    Points
    112
    Par défaut
    Il me semble que tu peux recupérer les icones convenant à chaque extension dans le registre (HKEY_CLASSES_ROOT). Ou sinon tu peux décider d'utiliser un enemble d'icones predéfinies (exe mp3 avi etc..)

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    La solution la plus simple à mon avis, c'est d'utiliser la méthode ExtractAssociatedIcon de la classe Icon :
    public static Icon ExtractAssociatedIcon (string filePath)

  4. #4
    Membre habitué Avatar de Khrysby
    Homme Profil pro
    Chef de projet
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 144
    Points
    144
    Par défaut
    La solution la plus simple à mon avis, c'est d'utiliser la méthode ExtractAssociatedIcon de la classe Icon :
    C'est ce que je pensais faire... Mais en fait, c'est après que je bock, car si j'ais bien compris, il faut que j'utilise un ImageList... Je crois qu'il faut que je remplisse cette ImageList avec les images extraient mais après, il faut que je les retrouve...

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    salut

    sur www.codeproject.com tu as un explorateur tout fait , pret à l'usage.

    The Monz, Toulouse

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Tu peux utiliser le nom du fichier (ou mieux, son extension, pour pas charger plusieurs fois les mêmes icônes pour des fichiers du même type) comme clé de la ImageList. Ensuite, pour chaque élément de ton TreeView ou ListView, tu changes la valeur de la propriété ImageKey pour utiliser l'icône correspondante.

  7. #7
    Membre habitué Avatar de Khrysby
    Homme Profil pro
    Chef de projet
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 144
    Points
    144
    Par défaut
    Merci... effectivement, j'ai trouvé ceci : http://www.codeproject.com/cs/miscctrl/FileBrowser.asp

    Pensais-tu à ce projet ?

  8. #8
    Membre régulier Avatar de Onlava
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Points : 112
    Points
    112
    Par défaut
    La solution la plus simple à mon avis, c'est d'utiliser la méthode ExtractAssociatedIcon de la classe Icon :
    public static Icon ExtractAssociatedIcon (string filePath)
    Génial ce truc

  9. #9
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Sinon, il y a la possibilité d'utiliser les APIs Win32 pour faire ce que tu veux faire

  10. #10
    Membre habitué Avatar de Khrysby
    Homme Profil pro
    Chef de projet
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 144
    Points
    144
    Par défaut
    Sinon, il y a la possibilité d'utiliser les APIs Win32 pour faire ce que tu veux faire
    Je t'avoue que je n'ais pas encore eu besoin d'utiliser les APIs... As-tu un exemple sous la mains stp ?

    Merci pour toute vos réponses en tout cas

  11. #11
    Membre habitué Avatar de danuz
    Homme Profil pro
    Expert .NET (WPF, Silverlight, Windows Phone) chez Soat
    Inscrit en
    Avril 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Expert .NET (WPF, Silverlight, Windows Phone) chez Soat

    Informations forums :
    Inscription : Avril 2003
    Messages : 102
    Points : 153
    Points
    153
    Par défaut
    Tiens, voilà un exemple comme en parlait Thomas .

  12. #12
    Membre habitué
    Homme Profil pro
    Mickaël
    Inscrit en
    Mai 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Mickaël
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2003
    Messages : 106
    Points : 133
    Points
    133
    Par défaut
    Si je peux me permettre, pour optimiser ton affichage je te conseille de :

    Rechercher l'icône générique pour tous les fichiers différents de .exe, .ico, c'est à dire que pour un fichier
    dummy.jpg il faut chercher l'icône correspondant à *.jpg.

    ( pour l'api qui retourne les icônes, cherche du côté de SHGetFileInfo)

    Par contre pour les exe, ico, tu peux rechercher l'icône correspondant au nom du fichier ( + son chemin).

    C'est un problème que j'ai rencontré sur mon explorateur, lorsqu'il y a beaucoup de fichiers, c'est la partie qui est la plus longue dans le traitement, alors autant l'optimiser un peu

    Bye

    Mickaël

  13. #13
    Membre habitué Avatar de Khrysby
    Homme Profil pro
    Chef de projet
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 144
    Points
    144
    Par défaut
    Merci pour toutes vos réponses... J'ai tout les éléments en main...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] les icones des fichiers
    Par abinonos dans le forum Développement Windows
    Réponses: 0
    Dernier message: 23/11/2012, 20h31
  2. Extraire les noms des fichiers pour les utiliser en variable
    Par Sylver--- dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 18/02/2011, 13h57
  3. Réponses: 2
    Dernier message: 03/09/2008, 17h14
  4. Réponses: 2
    Dernier message: 20/03/2008, 14h56
  5. Récuperer les icons des JDialog
    Par Pro_Fete dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 17/04/2003, 13h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo