Gtk api在ubuntu中查找书签位置

Gtk api在ubuntu中查找书签位置,ubuntu,gtk,nautilus,Ubuntu,Gtk,Nautilus,我想知道是否存在一个API和一个命令来查找ubuntu中的书签文件名和路径 我的应用程序写入书签文件以添加一些快捷方式。在ubuntu 11.X之前,书签文件通常位于“/home/myname/.gtk bookmarks”中,但在ubuntu 13.0X之后,它位于“/home/myname/.config/gtk-3.0/bookmarks”中。如果我必须为所有版本的ubuntu支持我的应用程序,那么我不能依赖于硬编码书签文件名/路径的路径。是否有一个、API和命令来查找书签文件的路径和名称

我想知道是否存在一个API和一个命令来查找ubuntu中的书签文件名和路径

我的应用程序写入书签文件以添加一些快捷方式。在ubuntu 11.X之前,书签文件通常位于“/home/myname/.gtk bookmarks”中,但在ubuntu 13.0X之后,它位于“/home/myname/.config/gtk-3.0/bookmarks”中。如果我必须为所有版本的ubuntu支持我的应用程序,那么我不能依赖于硬编码书签文件名/路径的路径。是否有一个、API和命令来查找书签文件的路径和名称?(我想要一个命令也是因为我也想从脚本中调用它)

鹦鹉螺还依赖于硬编码路径

static GFile *
nautilus_bookmark_list_get_legacy_file (void)
{
char *filename;
GFile *file;

filename = g_build_filename (g_get_home_dir (),
                 ".gtk-bookmarks",
                 NULL);
file = g_file_new_for_path (filename);

g_free (filename);

return file;
}

static GFile *
nautilus_bookmark_list_get_file (void)
{
char *filename;
GFile *file;

filename = g_build_filename (g_get_user_config_dir (),
                 "gtk-3.0",
                 "bookmarks",
                 NULL);
file = g_file_new_for_path (filename);

g_free (filename);

return file;
}

static void
load_io_thread (GSimpleAsyncResult *result,
    GObject *object,
    GCancellable *cancellable)
{
GFile *file;
gchar *contents;
GError *error = NULL;

file = nautilus_bookmark_list_get_file ();
if (!g_file_query_exists (file, NULL)) {
    file = nautilus_bookmark_list_get_legacy_file ();
}

g_file_load_contents (file, NULL, &contents, NULL, NULL, &error);

if (error != NULL) {
    if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND)) {
        g_warning ("Could not load bookmark file: %s\n", error->message);
    }
    g_error_free (error);
} else {
    g_simple_async_result_set_op_res_gpointer (result, contents, g_free);
}
}
您可以看到,Nautilus首先调用Nautilus_bookmark_list_get_文件,如果失败,它将调用Nautilus_bookmark_list_get_legacy_文件

提前谢谢。
-Sandeep

您是否查看了Nautilus源代码以了解它是如何获得书签路径的?是的,我查看了,令我惊讶的是Nautilus还依赖于硬编码路径。我编辑了上面的问题来解释Nautilus是如何获得书签文件的。