Project

General

Profile

Get-FileType

filter Get-FileType

Retrouve le format des données associé à l'extension du fichier émis dans le pipeline.
Cette reconnaissance du format utilise les informations Mime et PerceivedType présent dans la base de registre.
 
L'exemple suivant recherche certains types pour tous les fichiers du répertoire courant:
 Dir | Where-Object { ($_.PSIsContainer -eq 0)} |
  Foreach { 
     $Current=$_
     Switch (($Current|Get-FileType))
      {
        "text"        {"Texte : $Current"} 
        "image"       {"Image : $Current"}
        "application" {"Application : $Current"} 
        "audio"       {"Audio : $Current"} 
        default       {"Type inconnu."} 
      }#switch
  }#Foreach

Si la variable $global:MimeAndPerceivedType n'existe pas elle est créé.
On extrait, à partir de la variable MimeAndPerceivedType, le champ 'discrete-type' correspondant à l'extension du fichier, si l'information "Content Type" n'existe pas pour cette extension, alors on essaie avec l'information PerceivedType.
 
Pour les fichiers dont la correspondances Content Type est différente de "text", on s'assure que leur PerceivedType n'est pas de type "text". Ce qui est le cas, par exemple des fichiers .asmx de Visual Studio sont:
Content Type=application/xml et PerceivedType=text

Pour les types inconnus vous pouvez créer dans la base de registre les informations manquantes.