Les Snippets

Connexion

Récupérer le type MIME d'un fichier

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 04/10/2007 00:16:31 et initié par ShareVB [Liste]
Vue : 3999
Catégorie(s) : Base de registre, Fichier / Disque, Trucs & Astuces
Langages dispo pour ce code :
- C# 2.x
- VB 2005
- Voir tous les langages pour ce code snippet



Langage : C# 2.x
Date ajout : 08/10/2007
Posté par ShareVB [Liste]
        using Microsoft.Win32;
        using System.IO;
        /// <summary>
        /// Récupère le type MIME d'un fichier
        /// </summary>
        /// <param name="szFileName">Nom du fichier dont on veut le type MIME</param>
        /// <param name="forceDatabase">true pour rechercher 
        ///     dans HKEY_CLASSES_ROOT\MIME\DataBase\Content Type (MIME -> extension), 
        /// false pour rechercher 
        ///     dans HKEY_CLASSES_ROOT (extension -> MIME)</param>
        /// <returns>le type MIME ou null</returns>
        public static string GetMIMEType(string szFileName,bool forceDatabase)
        {
            //type MIME renvoyé
            string ret = null;
            //extension du fichier avec "."
            string szExt = Path.GetExtension(szFileName);
            //valeur d'une valeur d'une clé de registre
            object val = null;
            //si on veut lire dans HKEY_CLASSES_ROOT directement
            if (!forceDatabase)
            {
                //on essaie d'ouvrir la clé
                RegistryKey extKey = Registry.ClassesRoot.OpenSubKey(szExt);
                if (extKey != null)
                {
                    //il peut y avoir une valeur "Content Type" contenant le type MIME mais ce n'est pas obligatoire
                    val = extKey.GetValue("Content Type");
                    extKey.Close();
                }
            }
            //si on a déjà trouvé un type MIME et que l'on ne force pas la recherche dans HKEY_CLASSES_ROOT\MIME\DataBase\Content Type
            if (!forceDatabase && val != null)
                return val.ToString();
            else
            {
                //ouvre HKEY_CLASSES_ROOT\MIME\DataBase\Content Type
                RegistryKey contentTypeKey = Registry.ClassesRoot.OpenSubKey(@"MIME\Database\Content Type");
                //parcourt toutes les sous clés (types MIME connus)
                foreach (string subkey in contentTypeKey.GetSubKeyNames())
                {
                    //ouvre HKEY_CLASSES_ROOT\MIME\DataBase\Content Type\<type MIME>
                    RegistryKey contentTypeSubKey = contentTypeKey.OpenSubKey(subkey);
                    //récupère l'extension associée
                    object ext = contentTypeSubKey.GetValue("Extension");
                    //si ca correspond on a trouvé
                    if (ext != null && ext.ToString() == szExt)
                    {
                        ret = subkey;
                        break;
                    }
                    contentTypeSubKey.Close();
                }
                contentTypeKey.Close();
            }
            return ret;
        }


Snippets en rapport avec : Fichier, Mime, Content type



Codes sources en rapport avec : Fichier, Mime, Content type

{PHP} TYPE DU FICHER
Cette petite fonction toute simple vous determine l'extension (et donc le type) d'un fichier. Il vo...

{PHP} UPLOAD CHEZ FREE QUI MARCHE!!
Je me suis inspiré d'une fonction BCOPY créer par BeB3RePHPLover: http://www.phpc...

{C / C++ / C++.NET} STRUCTURE DES FICHIERS DBF
Pour chaque fichier DBF existant dans le dossier courrant, le programme fait un autre fichier, ayant...

{Visual Basic, VB6, VB.NET, VB 2005} ENREGISTRER LIRE ET MODIFIER/ÉCRIRE DANS UN FICHIER TEXTE AU FORMAT UNICODE
Ayant ramé pour trouver comment faire je vous offre cette petite source pour vous éviter de fastidie...

{PHP} PHP EXTRAIRE DES MAILS D'UN GROS FICHIER LOCAL OU DISTANT
On peut extraire tout les mails d'un fichier sans se prendre la tête pendant dans jours... Qu'en pe...

{Visual Basic, VB6, VB.NET, VB 2005} LECTURE ET MODIFICATION DES PROPRIÉTÉS DES FICHIERS OFFICE ET NTFS5
Lorsque vous cliquez sur Propriété d'un fichier, vous avez surement remarqué les onglets Résumé (pou...

{Delphi} MODIFIER LES DATES DE CRÉATION, DE MODIFICATION ET DE DERNIER ACCÈS D'UN FICHIER
La Source de grandvizir actuellement présente sur le site (http://www.delphifr.com/codes/CORRUPTEUR-...

{PHP} UTILISATION DU COMPOSANT MULTIPOWUPLOAD
Exemple d'utilisation du composant MultiPowUpload.... Le dossier UploadedFiles doit avoir les dro...

{C / C++ / C++.NET} BASE DE DONNÉES FICHIER
LOGICIEL COMPILE AVEC BC++ 5 STANDARD Ce logiciel genere une base de données des fichiers...

{SQL} SQL LECTURE IMPORT DE FICHIER TEXTE
Cette procédure permet le lire fichier texte comme un simple SELECT * sur une table. Pour faire s...