2014-04-15 22 views
14

İçerik türüne göre dosya uzantısını nasıl alabilirim?C# Dosya uzantısına sahip olmak türüne göre içerik türü

Örnek: Dosyanın "text/css" olduğunu biliyorum, bu nedenle uzantı ".css" olacaktır.

private static string GetExtension(string contentType) 
{ 
    string ext = "."; 

    { DETERMINATION CODE IN HERE } 

    return ext; 
} 
+0

Yaz ve doldurmak 'Dicionary' biliyorum tiplerinin? –

+1

Tüm oylamada ne var? –

+0

Düşündüm ki oylama, posterin neyin denendiğini sormaktan ve özel sorular sormaktan ziyade onun kodunu yazmamızı istediği içindir. –

cevap

23

Bildiğim "En İyi" çözüm, kayıt defterini sorgulamaktır. Burada örnek kod bulabilirsiniz. http://cyotek.com/blog/mime-types-and-file-extensions

public static string GetDefaultExtension(string mimeType) 
    { 
     string result; 
     RegistryKey key; 
     object value; 

     key = Registry.ClassesRoot.OpenSubKey(@"MIME\Database\Content Type\" + mimeType, false); 
     value = key != null ? key.GetValue("Extension", null) : null; 
     result = value != null ? value.ToString() : string.Empty; 

     return result; 
    } 
+1

'Microsoft.Win32'yi kullanarak;' –

+4

Bu, uzantıyı aldığınız sistem dosyayı açabilirse çalışır. Bir xls için, Excel'in yüklü olması gerekir –

+0

Hi @ mayowa ogundele, Sistem dosyayı açamıyorsa içerik türüne göre dosya uzantısı almak için alternatif çözüm nedir. Yinelenen Anahtarları kabul etmediği için sözlük kullanamazız (içerik türleri tekrarlandıkça). Lütfen öneriniz .. Teşekkür ederiz! – Bhargav

İlgili konular