什么是MIME Type
MIME Type是用于描述文件的类型的一种表述方法,其将文件划分为多种类型,方便对其进行统一的管理。
MIME Type指定了文件的类型名称、描述、图标信息,同时通过与.desktop应用程序描述文件整合,指定了文件的打开方式。
MIME type是被file manager使用,而不是Gnome或者Ubuntu系统本身。
以GIMP的.desktop为例说明:
[Desktop Entry]
Version=1.0
Type=Application
Name=GNU Image Manipulation Program
GenericName=Image Editor
Comment=Create images and edit photographs
Exec=gimp-2.7 %U
TryExec=gimp-2.7
Icon=gimp
Terminal=false
Categories=Graphics;2DGraphics;RasterGraphics;GTK;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=GIMP
X-GNOME-Bugzilla-Component=General
X-GNOME-Bugzilla-Version=2.7.2
X-GNOME-Bugzilla-OtherBinaries=gimp-2.7
StartupNotify=true
MimeType=application/postscript;application/pdf;image/bmp;image/g3fax;image/gif;image/x-fits;image/pcx;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-psd;image/x-sgi;image/x-tga;image/x-xbitmap;image/x-xwindowdump;image/x-xcf;image/x-compressed-xcf;image/tiff;image/jpeg;image/x-psp;image/png;image/x-icon;image/x-xpixmap;image/svg+xml;application/pdf;image/x-wmf;image/jp2;image/jpeg2000;image/jpx;image/x-xcursor;
MimeType字段说明了这个程序支持的MIME types
Exec字段说明了程序的打开方式,Exec字段最后的%U或%f很重要,其决定了这个程序时候能显示在文件管理器的open with清单中。
谁来决定MIME type的默认程序
mime文件类型描述文件,定义了每个MIME type的特征参数,以及每个何种类型的文件归属到这个MIME下
.desktop应用程序描述文件,说明了程序的打开方式,也指定了其支持的MIME type
mimeinfo.cache 通过抓取.desktop文件的MIME字段信息,将上述两种描述文件合二为一,形成一个查询数据库,每个MIME type文件打开时,将通过这个文件寻找打开程序。
如果一个MIME type对应到多个.desktop应用程序描述文件,通过抓取而来的mimeinfo.cache并不能决定谁更优