Comprendre le fonctionnement des extensions de fichiers

   Il existe 2 manières de gérer les extensions de fichiers sous windows XP. La classique, à l'aide de l'interface prévue pour et celle en ligne de commande. Retrouvez à la fin de l'article quelques dépannages courants.

    Il faut savoir que ces extensions sont gérées en 2 temps :

1) Association de l'extension (exemple .JPG) avec un "type" de fichier (exemple jpegfile).

2) Description du type (exemple jpegfile) avec son programme (exemple pour jpegfile : rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_Fullscreen %1). Le %1 signifie que cette commande sera lancée lors de l'appel d'un fichier avec le fichier en paramètre. (%1 étant le chemin complet du fichier appelé)

   Pour plus de clarté, cette explication reprendra l'extension .JPG ou son type jpegfile à chaque exemple.

Ampoule Par défaut, les extensions de fichiers ne sont pas visibles dans l'explorateur. Pour des raisons pratiques et de sécurité, je préfère les afficher. Rendez vous dans Panneau de configuration > Options des dossiers > Affichage puis décochez "Masquer les extensions..."
Ampoule Vous souhaitez connaitre à quoi correspond une extension précise ? Rendez vous sur http://filext.com/

   1) L'interface classique

   Elle est située dans le Panneau de configuration > Options des dossiers > Types de fichiers :

Types de fichiers

La partie correspondante du registre :
Assocaiation par registre
(par défaut : jpegfile)

   Le bouton [Modifier] permet de changer la première association .JPG ==> jpegfile tout simplement en demandant avec quel programme doit s'ouvrir cette extension en particulier.

   Le bouton [Avancé] va autoriser la modification sur un "type" de fichier et sa commande (jpegfile ==> rundll32.....)

   Modification du Type de fichier

Dans le registre, on a :
Vue du registre : actions

Quand on clique sur [Modifier...] :
Changement de l'action à effectuer
(DDE : Echange Dynamique de Données. Ne pas mettre, sauf si déjà configuré)

Ce qui correspond à :
Registre : vue association jpegfile ==> commande open
 

2) Les associations par la ligne de commande

   a) Commande assoc

      Pour récupérer l'association extension <==> type de fichier, faire :

C:\>assoc .jpg
.jpg=jpegfile

 

   On sait maintenant que l'extension .JPG est associé au type JPEGFILE

   Pour casser l'association de l'extension avec son type de fichier, faire :
C:\>assoc .jpg=nothing
.jpg=nothing
 

   Pour ré-associer, faire :

C:\>assoc .jpg=jpegfile
.jpg=jpegfile
 

   Petite astuce, si vous voulez avoir la description :

C:\>assoc jpegfile
jpegfile=Image JPEG
 

   b) Commande ftype

   Pour connaitre la commande utilisée par défaut avec JPEGFILE, faire :

C:\>ftype jpegfile
jpegfile=rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_Fullscreen %1
 

   Les changements fonctionnent comme pour la commande assoc :

C:\>ftype jpegfile=rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_Fullscreen %1
jpegfile=rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_Fullscreen %1
 

 

3) Dépannages en vrac

   Une association vous semble correcte, mais le programme ne démarre pas. Au contraire, il vous dit quelque chose du style : Impossible de trouver C:\program ?

   Il s'agit d'un problème classique avec les chemins comportant des espaces.

   Exemple avec les fichiers RTF :

C:\>assoc .rtf
.rtf=rtffile

C:\>ftype rtffile
rtffile=C:\Program Files\Windows NT\Accessoires\WORDPAD.EXE "%1"

Le chemin semble correct, mais il manque... les guillemets !

On va remettre les guillemets en place :

C:\>ftype rtffile="C:\Program Files\Windows NT\Accessoires\WORDPAD.EXE" "%1"
rtffile="C:\Program Files\Windows NT\Accessoires\WORDPAD.EXE" "%1"

Voilà, il ne devrait plus y avoir de problèmes avec les fichiers de type rtffile.

(on peut aussi avoir une variante avec les guillemets  manquants autour de  
%1 . Auquel cas, le programme s'ouvre, mais ne trouve pas le fichier à ouvrir si il comporte des espaces)