如果通过“使用以下方式打开文件”启动,应用程序如何获取文件名?

如果通过“使用以下方式打开文件”启动,应用程序如何获取文件名?

例如,Windows 启动所选应用程序的新进程,并使用附加命令行参数将要打开的文件的名称传递给该进程(对于我的应用程序:argv[0] - 可执行文件,argv[1] - 可打开文件)。Ubuntu 启动了我的应用程序,但该进程未收到任何附加参数(仅 argv[0])。我的应用程序如何找出用户打开的文件的名称?

答案1

文件管理器将传递您右键单击的文件的 URI 以选择“打开方式”。

在 Linux 桌面中,应用程序使用启动器文件启动。启动器文件是带有扩展名的纯文本文件.desktop。它包含有关桌面环境的信息,包括如何启动应用程序、使用什么图标、如何以及在菜单中显示应用程序的位置等。Open With Other Application" list in Files (nautilus) is populated by the系统中存在的 .desktop` 文件。

.desktop文件位于Exec=参数已定义。例如,对于编辑器 Gedit,此行是

Exec=gedit %U

仅当文件Exec=的条目.desktop包含参数时,系统才会将从文件(nautilus)接收到的参数传递给程序。

相关内容