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

时间:2015-05-10 08:17:33

标签: c gtk2

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

意思是,当用户选择目录时,文件管理器将打开而不是对话框。有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:5)

你应该使用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()函数。

答案 1 :(得分:0)

您应该启动xdg-open,例如用普通的叉子和EXEC键。

E.g。这将在/打开默认文件管理器:

if(fork() == 0) {
    system("xdg-open /");
}