Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

Ottenere il tipo MIME di un'estensione di file con Visual Basic

Non so se vi è mai capitata la necessità di conoscere il tipo MIME associato una determinata estensione di file, a me serviva per un client WPF che sto sviluppando per fare l’upload di file nel Blob Storage di Windows Azure.

 

In ogni caso, è un procedimento piuttosto semplice. I tipi MIME sono memorizzati nel registro di sistema per ciascuna estensione. Le estensioni sono registrate nella sezione HKEY_CLASSES_ROOT, quindi grazie ai metodi della classe Microsoft.Win32.Registry si possono recuperare i valori desiderati, come nel metodo seguente:

 

    Private Function getMimeType(ByVal fileName As String) As String

 

        'un valore di default, nel caso in cui l'estensione non sia registrata

        Dim mimeType As String = String.Empty

 

        Dim fileExtension = System.IO.Path.GetExtension(fileName).ToLower()

 

        'apre la chiave di registro corrispondente all'estensione del file

        Dim registryKey = Registry.ClassesRoot.OpenSubKey(fileExtension)

 

        'se la chiave non è vuota..

        If registryKey IsNot Nothing And registryKey.GetValue("Content Type") IsNot Nothing Then

            '..ottiene il valore della chiave Content Type

            mimeType = registryKey.GetValue("Content Type").ToString

        End If

 

        Return mimeType

 

    End Function

 

I commenti nel codice spiegano il significato delle azioni svolte. Volendo si potrebbe implementare come metodo extension per la classe String o per la classe FileInfo. Mi sarebbe piaciuto implementarlo come extension della classe Path, ma non è possibile perché i metodi extension non possono essere dichiarati Shared (pur comportandosi come tali).

 

Alessandro

Print | posted on lunedì 23 febbraio 2009 00:12 | Filed Under [ Visual Basic ]

Powered by:
Powered By Subtext Powered By ASP.NET