我制作了一个 Qt 应用程序,我们称之为“alpha”,它可以打开并生成.zip
文件。因此,基本上,我通过该应用程序创建的文件具有扩展名.alpha
,但它们基本上是.zip
文件。如何将.alpha
文件与我的“alpha”应用程序关联?目前,默认情况下,.alpha
文件使用存档管理器打开(因为系统将它们视为.zip
文件)。
我研究了许多可能的解决方案,但都没有成功。我尝试了以下方法:
我创建了一个
alpha.xml
文件/usr/share/mime/packages
<?xml version="1.0" encoding="UTF-8"?> <mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'> <mime-type type="application/alpha"> <comment>ALPHA File</comment> <glob pattern="*.alpha"/> </mime-type> </mime-info>
现在,当我单击
abc.alpha
文件时,出现以下错误:Could not display "abc.alpha". There is no application installed for "ALPHA File" files.
我编辑了该
/etc/mime.types
文件以包含以下行:application/alpha zip
我创建了文件
alpha.desktop
- 一切正常,因为 ALPHA 现在显示在“使用其他应用程序打开”中。但是我仍然无法双击文件.alpha
以在我的程序中打开它。
我该如何解决这个问题?提前致谢。
答案1
~/.local/share/mime/packages
在(我想这/usr/share/mime/packages
也很好,但没有测试过)中创建你的 xml 文件mkdir -p ~/.local/share/mime/packages touch ~/.local/share/mime/packages/application-alpha.xml
编辑
application-alpha.xml
:<?xml version="1.0" encoding="UTF-8"?> <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"> <mime-type type="application/alpha"> <comment>alpha file</comment> <glob-deleteall/> <glob pattern="*.alpha"/> </mime-type> </mime-info>
现在创建桌面文件
~/.local/share/applications/alpha.desktop
:[Desktop Entry] Name=Alpha Exec=/PATH/TO/YOUR/alpha MimeType=application/alpha Terminal=false Type=Application
向您的 alpha 应用程序添加正确的执行路径,如果这是一个控制台应用程序,则将终端更改为 true。
现在使用以下命令更新应用程序和 mime 数据库:
update-desktop-database ~/.local/share/applications update-mime-database ~/.local/share/mime
现在,如果您双击 abc.alpha 文件,/PATH/TO/YOUR/alpha
应用程序应该会打开您的文件。