首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Content-Type获取扩展

从Content-Type获取扩展
EN

Stack Overflow用户
提问于 2013-01-23 23:54:44
回答 2查看 4K关注 0票数 3

这是一个非常直接的问题。

我有一个以字符串形式存储的Content-Type

理想情况下,我希望从该Content-Type推断出一个扩展,而不必有一个巨大的讨厌的开关箱。

有没有内置的构造来实现这一点?

顺便说一句,我发现了这个question,但它从扩展到内容类型的方向是相反的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-23 23:58:46

你会需要一个Dictionary。这将允许您查找给定内容类型的扩展名:

代码语言:javascript
运行
复制
Dictionary<string, string> extensionLookup = new Dictionary<string, string>()
{
    {"ContentType1", ".ext1"},
    {"ContentType2", ".ext2"},
};

您可以根据数据库表、文件等填充字典,而不是硬编码这些值。

一旦你有了Dictionary,它就像下面这样简单:

代码语言:javascript
运行
复制
string extension = extensionLookup[someContentType];
票数 4
EN

Stack Overflow用户

发布于 2019-03-07 04:56:40

在我的W10框的注册表中,有一个将content-type映射到.extn的列表

代码语言:javascript
运行
复制
[HKEY_CLASSES_ROOT\MIME\Database\Content Type]

您可能希望浏览具有源文件HtmlWeb.csHtmlAgilityPack OSS project,其中包含以下方法:

代码语言:javascript
运行
复制
public static string GetContentTypeForExtension(string extension, string def)
public static string GetExtensionForContentType(string contentType, string def)

还有注释掉的字典和population代码:

代码语言:javascript
运行
复制
//private static Dictionary<string, string> _mimeTypes;
//        _mimeTypes = new Dictionary<string, string>();
//        _mimeTypes.Add(".3dm", "x-world/x-3dmf");
//        _mimeTypes.Add(".3dmf", "x-world/x-3dmf");
//    ...
//        _mimeTypes.Add(".zoo", "application/octet-stream");
//        _mimeTypes.Add(".zsh", "text/x-script.zsh");

因此,为了提高效率,您可以自己酿造(可能只是您的应用程序需要的常见应用程序)。

仅供参考,内容类型值和用法的权威列表如下:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14483751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档