为什么“xdg-mime query filetype ...”找不到新添加的文件类型?

为什么“xdg-mime query filetype ...”找不到新添加的文件类型?

我安装了一个新的文件类型来共享 MIME 数据库。但xdg-mime query filetype无法分辨新类型。这个问题只发生在我自己的 Linux 操作系统上,该操作系统不使用 GNOME 或 KDE 作为桌面。在 Ubuntu 上,相同的过程运行良好。

我发现xdg-mime query filetype在我的操作系统上使用“file -i filename”,但在 Ubuntu 上使用 gnomevfs。

这是我的步骤:

  1. 为我的新文件类型编写一个 xml 文件my_file.xml
  2. xdg-mime install my_file.xml
  3. xdg-mime query filetype<要查询的文件名称> .... 无输出:-(

我检查/usr/share/mime/applications并发现了 update-mime-database 生成的 xml 条目。 C APIg_file_info_get_content_type()可以获得正确的 mime 类型。

所以看起来共享 mime 信息已成功更新。但“file”命令仍然失败,为什么?

这是我的 xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
    <mime-type type="application/vnd.xxx.xxx.xxx">
        <comment>xxxx</comment>
        <glob pattern="*.dcf"/>
    </mime-type>
</mime-info>

答案1

我想我找到了答案。在我的系统上xdg-mime query filetype ...使用该file命令来获取文件类型,而在 Ubuntu 上它使用gnomevfs.

该命令似乎file不会检查共享 mime 信息的 XML 条目,而是查看该文件/usr/share/file/magic以获取文件 MIME 类型。

如果我file在 Ubuntu 上使用命令,它也无法告诉我正确的 MIME 类型。

我将研究如何编辑这个神奇的文件。

答案2

尝试安装http://search.cpan.org/dist/File-MimeInfo/(或您的发行版的软件包)其中包含该mimetype实用程序。

安装此软件包后,xdg-mime(在 Arch Linux 上测试了版本 1.1.0 rc1)现在应该检测到mimetype使用 XDG 共享 mime 信息数据库)可用,并使用它而不是依靠file -i.

相关内容