Il existe plusieurs approches pour récupérer la description et l'icône par défaut pour une extension donnée (pas de chemin complet), par exemple pour "* .doc" Je veux obtenir "Microsoft Word Document" et l'icône associée, qui selon vous sera le plus rapide des éléments suivants:Le moyen le plus rapide pour obtenir le nom de l'extension et l'icône par une extension de fichier?
Rechercher dans le registre: "HKCR {l'extension}"
- dans le registre, aller, lire la valeur par défaut (appelons-le filetype)
- dans "HKCR {filetype} \ DefaultIcon", lisez la valeur par défaut: ceci est le chemin vers le fichier d'icône (ou l'icône contient fichier er, comme un fichier .exe avec une ressource d'icône incorporée)
- si nécessaire, utilisez votre méthode préférée pour extraire la ressource d'icône du fichier mentionné.
Appel de l'API ShGetFileInfo. Je crois que c'est un peu lent.
Selon Rob, ici: How to get icon and description from file extension using Delphi?
appelle l'interface IExtractIcon une alternative "plus souple et plus efficace". Mais la séquence recommandée est d'utiliser une interface IShellFolder, puis appelez GetUIObjectOf pour obtenir l'interface IExtractIcon du fichier, puis appelez GetIconLocation et Extract dessus pour récupérer le handle de l'icône. (mais cette méthode ne peut pas lire la description de l'extension?)
Étant donné que la vitesse est très importante car j'ai besoin de lire les informations pour tous les types de fichiers dans le système.
Merci beaucoup!
+1 pour "Test de test et test à nouveau" – thijs