使用现有扩展名创建新的文件类型

使用现有扩展名创建新的文件类型

我制作了一个 Qt 应用程序,我们称之为“alpha”,它可以打开并生成.zip文件。因此,基本上,我通过该应用程序创建的文件具有扩展名.alpha,但它们基本上是.zip文件。如何将.alpha文件与我的“alpha”应用程序关联?目前,默认情况下,.alpha文件使用存档管理器打开(因为系统将它们视为.zip文件)。

我研究了许多可能的解决方案,但都没有成功。我尝试了以下方法:

  1. 我创建了一个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.
    
  2. 我编辑了该/etc/mime.types文件以包含以下行:

    application/alpha                zip
    
  3. 我创建了文件alpha.desktop- 一切正常,因为 ALPHA 现在显示在“使用其他应用程序打开”中。但是我仍然无法双击文件.alpha以在我的程序中打开它。

我该如何解决这个问题?提前致谢。

答案1

Archlinux 默认应用程序

  1. ~/.local/share/mime/packages在(我想这/usr/share/mime/packages也很好,但没有测试过)中创建你的 xml 文件

    mkdir -p ~/.local/share/mime/packages
    touch ~/.local/share/mime/packages/application-alpha.xml
    
  2. 编辑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>
    
  3. 现在创建桌面文件~/.local/share/applications/alpha.desktop

    [Desktop Entry]
    Name=Alpha
    Exec=/PATH/TO/YOUR/alpha
    MimeType=application/alpha
    Terminal=false
    Type=Application
    

    向您的 alpha 应用程序添加正确的执行路径,如果这是一个控制台应用程序,则将终端更改为 true。

  4. 现在使用以下命令更新应用程序和 mime 数据库:

    update-desktop-database ~/.local/share/applications
    update-mime-database    ~/.local/share/mime
    

现在,如果您双击 abc.alpha 文件,/PATH/TO/YOUR/alpha应用程序应该会打开您的文件。

相关内容