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 : 4669
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 : VB 2005
Date ajout : 08/12/2007
Posté par ShareVB [Liste]
        ''' <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 Shared Function GetMIMEType(ByVal szFileName As String, ByVal forceDatabase As Boolean) As String
            'type MIME renvoyé
            Dim ret As String = Nothing
            'extension du fichier avec "."
            Dim szExt As String = Path.GetExtension(szFileName)
            'valeur d'une valeur d'une clé de registre
            Dim val As Object = Nothing
            'si on veut lire dans HKEY_CLASSES_ROOT directement
            If Not forceDatabase Then
                'on essaie d'ouvrir la clé
                Dim extKey As RegistryKey = Registry.ClassesRoot.OpenSubKey(szExt)
                If Not extKey Is Nothing Then
                    '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()
                End If
            End If
            '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 Not Not forceDatabase AndAlso val Is Nothing Then
                Return val.ToString()
            Else
                'ouvre HKEY_CLASSES_ROOT\MIME\DataBase\Content Type
                Dim contentTypeKey As RegistryKey = Registry.ClassesRoot.OpenSubKey("MIME\Database\Content Type")
                'parcourt toutes les sous clés (types MIME connus)
                For Each subkey As String In contentTypeKey.GetSubKeyNames()
                    'ouvre HKEY_CLASSES_ROOT\MIME\DataBase\Content Type\<type MIME>
                    Dim contentTypeSubKey As RegistryKey = contentTypeKey.OpenSubKey(subkey)
                    'récupère l'extension associée
                    Dim ext As Object = contentTypeSubKey.GetValue("Extension")
                    'si ca correspond on a trouvé
                    If Not ext Is Nothing AndAlso ext.ToString() = szExt Then
                        ret = subkey
                        Exit For
                    End If
                    contentTypeSubKey.Close()
                Next
                contentTypeKey.Close()
            End If
            Return ret
        End Function


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} TXT SUPPRIMER LIGNES DOUBLONS (WIN32)
Demo pour cette question du forum: http://www.cppfrance.com/forum.v2.aspx?ID=1234830 Exe qui sup...

{C / C++ / C++.NET} LISTER LES FICHIERS D'UN REPERTOIRE + FILTRES
Programmé sous Linux. Compatible windows. Liste les fichiers d'un répertoire come indiqué dans le...

{C / C++ / C++.NET} PROTEGER UN DOSSIER ET LES FICHIER A L INTERIEUR
protégé un dossier et les fichier intérieur en renommant le dossier sous le nom de, au hasard ...

{Visual Basic, VB6, VB.NET, VB 2005} LISTER FICHIERS D'UN DOSSIER
ce p'tit code permet de lister les fichiers d'un dossier choisi en plaçant leur noms, leur type et l...

{JAVA / J2EE} JCONFIGURATIONMANAGER - GESTION DES CONFIGURATIONS
Une classe qui permet de récupérer des paramètres de configuration à partir d'un fichier xml. Pour p...

{Visual Basic, VB6, VB.NET, VB 2005} RENOMMER FICHIERS AVEC VIEWER
Sert à trier des photos à l'aide d'un viewer,les classer, les renommer pour l'exécution d'un diapora...

{Visual Basic, VB6, VB.NET, VB 2005} FILE RENAME - CHANGER LES NOMS DE VOS FICHIERS EN TOUTE SIMPLICITÉ
Ce programme sert à modifier vos fichiers rapidement et simplement. Il présente plusieurs fonctio...

{Visual Basic, VB6, VB.NET, VB 2005} [.NET3.5] EXTENSION METHODS: SUR LES CLASSES SYSTEM.IO
Les extensions de méthodes, en voici une nouveauté introduite avec VB2008. Elles permettent d'étend...