选择使用哪个应用程序打开文件时,如何显示所有应用程序?

选择使用哪个应用程序打开文件时,如何显示所有应用程序?

我正在尝试打开一个未知类型的文件 (Pokemon Gold.gbc)。我双击它并收到消息“无法显示‘/home/josh/Downloads/Pokemon ROMS/Pokemon Gold.gbc’。该文件属于未知类型。”我单击“选择应用程序”,然后单击“显示其他应用程序”。但是,并非所有应用程序都列在那里,我想要的应用程序 (VBA-M [软件包名称 vbam-gtk]) 也没有列出。我怎样才能让所有已安装的应用程序都显示在此菜单中,这样我就不必从所需程序打开文件,只需在 nautilus 中双击文件即可启动它?

更新:我发现该应用程序可以从

/usr/bin/vbam

或来自

/usr/share/applications/VBA-M

或命令行:

gvbam

其他详细信息:我从 Sourceforge 获得的 .deb 文件安装了此包,而不是从存储库安装(存储库中的 GameBoy 模拟器不令人满意)。

那么至少有一种方法可以让我选择可执行文件来打开未知文件吗?

更新 2:

我尝试了下面第一个答案中的所有方法,但都无济于事。作为临时解决方案,我将文件扩展名从 .gbc 更改为 .gb,到目前为止一切似乎都运行良好。但是,我不想保持这种状态,因为我不知道这是否会导致任何问题。

答案1

解决方案:

在终端中运行gedit ~/.local/share/applications/mimeapps.list。在打开的文本文档中,在“[Added Associates]”下方添加一行application/octet-stream=gvbam.desktop;,该行应位于顶部。这应该会强制使用 VBA-M 打开 .gbc 文件(Ubuntu 将其识别为八位字节流)。

您还必须按照以下步骤告诉 VBA-M 在启动时加载 rom:

  • 在终端中运行gksudo gedit /usr/share/applications/gvbam.desktop
  • 在打开的文件中,替换Exec=gvbamExec=gvbam %U

接下来,您需要sudo update-desktop-database在终端中运行以“应用”编辑。

当您在右键菜单中单击“使用其他应用程序打开...”,然后单击“显示其他应用程序”时,VBA-M 现在应该在列表中,并且游戏应该可以正确打开。

如果文件未被识别为 GameBoy Color Rom 或无法打开,请重命名扩展名。例如,如果扩展名是“.gbc”(即 GameBoy Color),则将其重命名为“.gb”(即 GameBoy)应该会使其被识别为 GameBoy Rom。


我如何得出结论

在终端中运行gksudo gedit /usr/share/applications/gvbam.desktop。在“Exec=gvbam”行中,%U随后添加。因此,最后整行应该是Exec=gvbam %U

虽然这做过将 VBA-M 添加到“其他应用程序”列表中(这样我就可以将 VBA-M 设置为 .gbc 的默认程序),游戏实际上并没有运行;事实上,VBA-M 窗口完全无法显示在任何地方。我认为这是因为 VBA-M 目前的工作方式;在终端中,我运行了gvbam "Pokemon Gold.gbc",结果抛出了以下错误:

The program 'gvbam' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadAlloc (insufficient resources for operation)'.
  (Details: serial 474 error_code 11 request_code 154 minor_code 3)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

为了进一步测试,我下载了另一个 rom,并选择塞尔达传说:众神的三角力量。已经按照上述说明将 VBA-M 添加到应用程序列表中,我将其选为 Zelda 游戏的默认文件,这是一个 .gba 文件;游戏加载正常。我注意到在文件的属性中,.gbc 的类型是unknown (application/octet-stream),而 .gba 的类型是Game Boy Advance ROM (application/x-gba-rom);显然,GameBoy Color roms 关联中缺少其他东西,而 GameBoy Advance roms 中没有缺少这些东西。

我尝试将其添加gbc为关联文件类型application/octet-stream,这似乎解决了 .gbc 文件无法打开的问题。但是,我随后将其删除,并再次尝试打开 .gbc,它仍然有效;我不确定我做了什么,但现在它可以正常工作了。


原始答案

这篇文章得到了点赞,既然有人认为这篇文章很好,我就把它留在这里,供其他关心的人参考。话虽如此,上面的信息可能与问题更相关。

首先,您必须确保文件扩展名的 MIME 类型尚不存在。打开终端并输入:

  • grep 'gbc' /etc/mime.types

如果没有输出,或者给出的输出不包含您的扩展,则必须添加 MIME 类型。

在终端中,通过运行 打开 mime.types 文件gksudo gedit /etc/mime.types。在此文件中,将以下行添加到“application”部分:

应用程序/gbc gbc

两个 gbc 之间应该有额外的空格 - 只需确保将第二个 gbc 与其他扩展对齐即可。我会展示,但我不确定如何在 askubuntu 上做到这一点。


资料来源:

相关内容