Gtk 打开默认文件管理器文件夹

Gtk open default file manager folder

我需要用gtk和C打开用户系统的默认文件管理器(不是对话框,而是系统使用的文件管理器)

意思是,当用户选择目录时,文件管理器将打开,而不是对话框。有什么办法可以做到这一点?

您应该启动 xdg-open,例如使用普通的 fork & exec.

例如这将在 /:

打开默认文件管理器
if(fork() == 0) {
    system("xdg-open /");
}

你应该使用 GIO:

GError *error = NULL;
if (!g_app_info_launch_default_for_uri ("file:///", NULL, &error)) {
    g_warning ("Failed to open uri: %s", error->message);
}

请注意,这几乎肯定需要一个 运行 GLib 主循环(但如果您使用的是 GTK+,那么您已经有了)。

此外,不能 100% 保证文件管理器会打开,但在任何设置合理的系统上,它都会成为目录 uris 的默认处理程序。

在普通的 GNOME 系统上@keltars xdg-open 方法 forks,运行一个 shell 脚本启动一个二进制文件,然后运行相同的 g_app_info_launch_default_for_uri() 函数。