终于搞定了文件关联!
时间:2004-08-24
来源:互联网
对于nautilus识别为application/octet-stream的文件如.rmvb,.mo,.lrc等,
用系统自带的工具(Applications->Desktop Preferences->Advanced->File types and programs)关联好程序图标等,在Nautilus中还是无法识别。
几经周折,终于找到了/usr/share/mime/packages/
于是,一切迎刃而解了。管它什么后缀关联,还是Magic关联。
我是这么理解的:
/usr/share/mime是管文件类型注册的,(文件头或者后缀)
/usr/share/mime-info是管文件描述、关联、图标等。
作者: osfans 发布时间: 2004-08-24
作者: babo 发布时间: 2004-08-26
作者: dengwangxi 发布时间: 2004-08-26
作者: e_liming 发布时间: 2004-08-26
请解释一下
作者: athlon_r 发布时间: 2004-08-28
估计是好文章,顶一下
作者: zonzi 发布时间: 2004-08-28
gnome2.6中的nautilus如何为新文件类型建立关联
http://freedesktop.org/Standards/AddingMIMETutor 可以下载一个mime-editor,针对扩展名建一个新的mime类型。 |
我的系统是debian testing,gnome 到现在nautilus还是不认rmvb文件,只认rm,就连“RM”都不认。那位大侠能帮忙解决一下? |
迟迟没写,是因为发现比较复杂,不容易研究透彻。有太多的文档要看。
一来没时间,二来没什么基础,所以,深度还不够。
[问题]
(Slackware10+Gnome2.6.2+osfans的组装机,不知问题是否具有普遍性)
1.nautilus已经能够识别大多MIME类型,对于不能识别的或者识别为application/octet-stream(八位二进制流程序)的文件,
如何创建新类型?
2.利用“文件类型和相关程序”关联程序后,仍无法打开文件。
如关联好RMVB文件后,双击文件仍没有反应或者提示要关联应用程序。
3.右键文件属性的MIME类型,与“文件类型和相关程序”识别的类型不一致。
如ape文件,nautilus的文件属性识别为“application/octet-stream”,但关联程序转到“文件类型和相关程序”时
却为application/x-ape(Monkey音频)。
比如用XMMS关联后,出现第二个问题。
4.nautilus右击文件,“打开方式”列表混乱。
如有两个“The GIMP”,“Real Player”和“realplayer”同时存在。
5.“打开方式”的程序名如何设定。
如在utf8下,用“env LANG=zh_CN beep-media-player”关联mp3文件,
但是不想用命令而想用“Beep Media Player”或“BMP”作程序名。
6.图片和文本文件,默认是“查看”动作,但设为“程序”动作后,很难还原。
7.更为严重的是,将文件夹的默认动作关联为“gThumb”或“terminal”后,很难还原。
最后被逼无奈,当然不是重装系统了,而是“rm $HOME/*”──新的开始。
[解决]
下面就讲讲我的做法吧。
关键文件
1./usr/share/mime/packages/*.xml
2./usr/share/application-registry/*.applications
(~/.gnome/application-info/*.applications)
3./usr/share/mime-info/*.keys
(~/.gnome/mime-info/*.keys)
4./usr/share/mime-info/*.mime
(~/.gnome/mime-info/*.mime)
第一类文件(/usr/share/mime/packages/*.xml)就是用来注册MIME文件类型的。
其文件头如下:
<!DOCTYPE mime-info [
<!ELEMENT mime-info (mime-type)+>
<!ATTLIST mime-info xmlns CDATA #FIXED "http://www.freedesktop.org/standards/shared-mime-info">
<!ELEMENT mime-type (comment|glob|magic|root-XML|alias|sub-class-of)*>
<!ATTLIST mime-type type CDATA #REQUIRED>
<!ELEMENT comment (#PCDATA)>
<!ATTLIST comment xml:lang CDATA #IMPLIED>
<!ELEMENT glob EMPTY>
<!ATTLIST glob pattern CDATA #REQUIRED>
<!ELEMENT magic (match)+>
<!ATTLIST magic priority CDATA #IMPLIED>
<!ELEMENT match (match)*>
<!ATTLIST match offset CDATA #REQUIRED>
<!ATTLIST match type (string|big16|big32|little16|little32|host16|host32|byte) #REQUIRED>
<!ATTLIST match value CDATA #REQUIRED>
<!ATTLIST match mask CDATA #IMPLIED>
<!ELEMENT root-XML EMPTY>
<!ATTLIST root-XML
namespaceURI CDATA #REQUIRED
localName CDATA #REQUIRED>
<!ELEMENT alias EMPTY>
<!ATTLIST alias
type CDATA #REQUIRED>
<!ELEMENT sub-class-of EMPTY>
<!ATTLIST sub-class-of
type CDATA #REQUIRED>
]>
当然,可以两者都用,不过,后者优先于前者。
nautilus则相反,但当点击选中文件时,则会用后者识别文件类型。如Rar文件的描述:
(我的是0.14版本的shared-mime-info)
<comment>RAR archive</comment>
<comment xml:lang="cy">Archif RAR</comment>
<comment xml:lang="nn">RAR-arkiv</comment>
<comment xml:lang="no">RAR-arkiv</comment>
<comment xml:lang="sr">РАР архива</comment>
<comment xml:lang="sv">RAR-arkiv</comment>
<magic priority="50">
<match offset="0" type="string" value="Rar!" />
</magic>
<glob pattern="*.rar" />
</mime-type>
我们可以看到这里用了两种方法识别rar文件,也就是说可以分别用这两种方法创建rar文件:
1.打开gedit,在里面顶格输入“Rar!”几个字(引号中部分),然后保存文件,随便用什么后缀名。
2.在 nautilus 里,右键创建空文件,加上rar后缀。
所以,为了让系统能够识别rmvb文件,加上一段即可:
<comment>RealAudio/RealVideo VBR</comment>
<glob pattern="*.rmvb" />
</mime-type>
第二类文件(/usr/share/application-registry/*.applications)是用来注册程序的。
看一段就明白了:
command=xmms
name=X Multimedia System
can_open_multiple_files=true
expects_uris=true
requires_terminal=false
supported_uri_schemes=http,ftp,file
mime_types=audio/x-mp3,audio/x-mpeg,application/x-ogg,
application/ogg,audio/x-wav,audio/x-riff,audio/mpeg
这个比较简单,而且即刻生效。
gnome-vfs.applications和gimp.applications重复注册,所以会在打开方式中出现两个“The GIMP”。
反正gimp.applications只是个链接,就把它删了。
第三类文件(/usr/share/mime-info/*.keys)功能不少:类型描述,分类,图标,动作,是否显示在打开方式列表中,等等。
如:(只保留中文描述)
description=PNG image
[zh_CN]description=PNG 图像
default_action_type=component
short_list_component_iids=OAFIID:GNOME_EOG_Control
short_list_component_iids_for_novice_user_level=OAFIID:GNOME_EOG_Control
short_list_component_iids_for_intermediate_user_level=OAFIID:GNOME_EOG_Control
short_list_component_iids_for_advanced_user_level=OAFIID:GNOME_EOG_Control
short_list_application_ids_for_novice_user_level=eog,electric_eyes,gimp
short_list_application_ids_for_intermediate_user_level=eog,electric_eyes,gimp
short_list_application_ids_for_advanced_user_level=eog,electric_eyes,gimp
icon_filename=gnome-image-png
category=Images
[zh_CN]category=图像
默认动作为“GNOME_EOG_Control”组件查看。打开方式列表中有eog(Eye of Gnome)和gimp(The GIMP),
因为系统没装electric_eyes,所以没有出现在列表中。
而因为gthumb(gThumb)和display(ImageMagick Display)在第二类文件中注册了,
所以出现在其它应用程序列表中,而不在打开列表中。
第四类文件(/usr/share/mime-info/*.mime)真的没什么用,只是罗列了各种类型文件对应的扩展名。
删掉之后不影响nautilus文件关联,不影响文件描述,只影响“文件类型和相关程序”。
我把.mime都移走后,就只剩下Internet服务了,倒也挺不错,挺干净,要注册什么协议就用它,
这次看奥运会用mlayer等关联mms看网上直播,很爽啊。
反过来说,如果文件类型没有在第一类文件中注册过,即使在“文件类型和相关程序”关联过,也没用。
[总结]
因此,类型注册是在第一类文件中,程序注册及关联是在第二类中,类型描述图标程序列表等在第三类中,而第四类是唬弄人的。
作者: osfans 发布时间: 2004-08-29
我顶!!!!
作者: ak70 发布时间: 2004-08-29
作者: yanwuhuan 发布时间: 2004-08-30
作者: 至尊宝 发布时间: 2004-08-30
作者: jhuangjiahua 发布时间: 2004-08-30
作者: hzhr 发布时间: 2004-08-30
作者: athlon_r 发布时间: 2004-09-22
作者: ahr 发布时间: 2005-07-05
作者: ahr
谢谢共享经验:)
|
作者: starboys 发布时间: 2005-07-08
作者: osfans
[回顾]
gnome2.6中的nautilus如何为新文件类型建立关联 那些注释就别管它了,而且在Gnome中也没有用,Gnome另有方法描述文件类型。 我们可以看到这里用了两种方法识别rar文件,也就是说可以分别用这两种方法创建rar文件: 1.打开gedit,在里面顶格输入“Rar!”几个字(引号中部分),然后保存文件,随便用什么后缀名。 2.在 nautilus 里,右键创建空文件,加上rar后缀。 所以,为了让系统能够识别rmvb文件,加上一段即可:
PHP 代码:
<mime-type type="application/vnd.rn-realmedia-vbr">
<comment>RealAudio/RealVideo VBR</comment> <glob pattern="*.rmvb" /> </mime-type> |
作者: fzhyeale 发布时间: 2006-05-19
作者: aps 发布时间: 2006-05-19
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28