【问题标题】:Error while getting file MIME type获取文件 MIME 类型时出错
【发布时间】:2015-02-23 08:40:54
【问题描述】:

我已使用代码here 来获取文件的 MIME 类型。

作为

        public static string GetContentType(string fileName)
        {
            var extension = Path.GetExtension(fileName);

            if (String.IsNullOrWhiteSpace(extension))
            {
                return null;
            }

            var registryKey = Registry.ClassesRoot.OpenSubKey(extension);

            if (registryKey == null)
            {
                return null;
            }

            var value = registryKey.GetValue("Content Type") as string;

            return String.IsNullOrWhiteSpace(value) ? null : value;
        }

但它总是为 sql 文件返回 null。任何想法我做错了什么。

【问题讨论】:

    标签: c# mime-types


    【解决方案1】:

    因为注册表项 HKEY_CLASSES_ROOT\.sql 可能没有任何名为 Content Type 的值。您可以通过regedit 工具手动添加。

    【讨论】:

    • 是的。但如何做到这一点。我在 HKEY_CLASSES_ROOT 下有一个 .sql 文件夹您可以在以下位置找到它:s18.postimg.org/9fif5qjx5/Content.jpg
    • 右击>New>String Value重命名为Content Type然后设置数据为application/octet-stream(SQL没有特殊的MIME类型)。我怀疑应该对名为 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.sql 的密钥执行相同的过程。
    • 如果您要以编程方式执行此操作,那么您的意义何在?
    • 我的意思是类型不存在于一个人的机器中,那么对于 sql 文件总是返回 null。于是问题就来了。
    • @ch.smrutiranjanparida,您可以参考this。您最好为在注册表中没有内容类型值的扩展保留一个文件。
    猜你喜欢
    • 2018-12-01
    • 2014-05-19
    • 1970-01-01
    • 2011-07-03
    • 2012-05-08
    • 2015-08-03
    • 2014-01-30
    • 2012-11-03
    • 2015-09-13
    相关资源
    最近更新 更多