【问题标题】:Is there a way to get an extension for a given content type?有没有办法获得给定内容类型的扩展?
【发布时间】:2011-12-15 04:48:21
【问题描述】:

有没有办法反过来呢?

content type by extension

我有一个WebResponse,它有一个内容类型,我需要用适当的扩展名缓存响应。

图像/png => .png

图像/jpg => .jpg

【问题讨论】:

  • 如果有多个扩展名对应一种 MIME 类型怎么办?更糟糕的是,如果一个扩展对应不同的 MIME 类型怎么办?
  • 后者完全没有问题。前者只是我的主要问题的延伸。我必须以可用的格式(即具有适当的扩展名)缓存我给出的任何内容。我试图避免使用 switch 语句,因为这样可以保证将事情排除在外。

标签: c# content-type


【解决方案1】:

Windows 在注册表中有一个 MIME 类型的数据库。 Internet Explorer 使用此数据库在其Save As 对话框中选择默认的下载扩展名。

机器级数据库位于HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database 下,用户特定的覆盖位于HKEY_CURRENT_USER\Software\Classes\MIME\DataBase 下。 Windows 将这些树合并并在HKEY_CLASSES_ROOT\MIME\DataBase 下公开结果。

Content-Type 映射位于Content Type 子键下的树中;例如,audio/mp3 类型位于:

HKEY_CLASSES_ROOT\MIME\Database\Content Type\audio/mp3

默认文件扩展名(包括前导句点字符)位于 Extension 命名值中。

由于 another answer on StackOverflow 已经包含一个 sn-p 来执行此操作,我不会在这里重新发明轮子 :-)

【讨论】:

    猜你喜欢
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多