我安装了一个新的文件类型来共享 MIME 数据库。但xdg-mime query filetype
无法分辨新类型。这个问题只发生在我自己的 Linux 操作系统上,该操作系统不使用 GNOME 或 KDE 作为桌面。在 Ubuntu 上,相同的过程运行良好。
我发现xdg-mime query filetype
在我的操作系统上使用“file -i filename”,但在 Ubuntu 上使用 gnomevfs。
这是我的步骤:
- 为我的新文件类型编写一个 xml 文件
my_file.xml
xdg-mime install my_file.xml
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
.