2014-04-15 14 views
14

Làm cách nào để nhận được phần mở rộng tập tin theo loại nội dung?C# Nhận phần mở rộng tập tin theo loại nội dung

Ví dụ tôi biết tệp đó là "văn bản/css" để tiện ích mở rộng sẽ là ".css".

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

    { DETERMINATION CODE IN HERE } 

    return ext; 
} 
+0

Viết và điền vào 'Dicionary' biết loại? –

+1

Có gì với tất cả các cuộc bỏ phiếu xuống? –

+0

Tôi nghĩ việc bỏ phiếu xuống là vì người đăng ký yêu cầu chúng tôi viết mã cho anh ấy thay vì đăng những gì đã được thử và đặt câu hỏi cụ thể. –

Trả lời

23

Giải pháp "Tốt nhất" mà tôi biết là truy vấn sổ đăng ký. Bạn có thể tìm thấy mã ví dụ ở đây. 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

'bằng cách sử dụng Microsoft.Win32;' –

+4

Điều này hoạt động nếu hệ thống bạn đang nhận được phần mở rộng từ có thể mở tệp. Đối với một xls, bạn cần cài đặt Excel vv –

+0

Hi @mayowa ogundele, giải pháp thay thế cho việc mở rộng tập tin dựa trên kiểu nội dung là gì nếu hệ thống không thể mở tệp. Chúng tôi không thể sử dụng từ điển vì nó không chấp nhận các phím trùng lặp (như các loại nội dung lặp lại). Xin vui lòng đề nghị .. Cảm ơn bạn! – Bhargav

Các vấn đề liên quan