### Struct

# GLib BookmarkFile

since: 2.12

#### Description [src]

    struct GBookmarkFile {
      /* No available fields */
    }

`GBookmarkFile` lets you parse, edit or create files containing bookmarks.

Bookmarks refer to a URI, along with some meta-data about the resource pointed by the URI like its MIME type, the application that is registering the bookmark and the icon that should be used to represent the bookmark. The data is stored using the Desktop Bookmark Specification.

The syntax of the bookmark files is described in detail inside the Desktop Bookmark Specification, here is a quick summary: bookmark files use a sub-class of the XML Bookmark Exchange Language specification, consisting of valid UTF-8 encoded XML, under the `<xbel>` root element; each bookmark is stored inside a `<bookmark>` element, using its URI: no relative paths can be used inside a bookmark file. The bookmark may have a user defined title and description, to be used instead of the URI. Under the `<metadata>` element, with its owner attribute set to `http://freedesktop.org`, is stored the meta-data about a resource pointed by its URI. The meta-data consists of the resource’s MIME type; the applications that have registered a bookmark; the groups to which a bookmark belongs to; a visibility flag, used to set the bookmark as “private” to the applications and groups that has it registered; the URI and MIME type of an icon, to be used when displaying the bookmark inside a GUI.

Here is an example of a bookmark file: bookmarks.xbel

A bookmark file might contain more than one bookmark; each bookmark is accessed through its URI.

The important caveat of bookmark files is that when you add a new bookmark you must also add the application that is registering it, using `g_bookmark_file_add_application()` or `g_bookmark_file_set_application_info()`. If a bookmark has no applications then it won’t be dumped when creating the on disk representation, using `g_bookmark_file_to_data()` or `g_bookmark_file_to_file()`.

Available since: 2.12

#### Constructors

###### g_bookmark_file_new

Creates a new empty `GBookmarkFile` object.

since: 2.12

#### Functions

###### g_bookmark_file_error_quark

No description available.

#### Instance methods

###### g_bookmark_file_add_application

Adds the application with `name` and `exec` to the list of applications that have registered a bookmark for `uri` into `bookmark`.

since: 2.12

###### g_bookmark_file_add_group

Adds `group` to the list of groups to which the bookmark for `uri` belongs to.

since: 2.12

###### g_bookmark_file_copy

Deeply copies a `bookmark` `GBookmarkFile` object to a new one.

since: 2.76

###### g_bookmark_file_free

Frees a `GBookmarkFile`.

since: 2.12

###### g_bookmark_file_get_added

Gets the time the bookmark for `uri` was added to `bookmark`.

deprecated: 2.66 since: 2.12

###### g_bookmark_file_get_added_date_time

Gets the time the bookmark for `uri` was added to `bookmark`.

since: 2.66

###### g_bookmark_file_get_app_info

Gets the registration information of `app_name` for the bookmark for `uri`. See `g_bookmark_file_set_application_info()` for more information about the returned data.

deprecated: 2.66 since: 2.12

###### g_bookmark_file_get_application_info

Gets the registration information of `app_name` for the bookmark for `uri`. See `g_bookmark_file_set_application_info()` for more information about the returned data.

since: 2.66

###### g_bookmark_file_get_applications

Retrieves the names of the applications that have registered the bookmark for `uri`.

since: 2.12

###### g_bookmark_file_get_description

Retrieves the description of the bookmark for `uri`.

since: 2.12

###### g_bookmark_file_get_groups

Retrieves the list of group names of the bookmark for `uri`.

since: 2.12

###### g_bookmark_file_get_icon

Gets the icon of the bookmark for `uri`.

since: 2.12

###### g_bookmark_file_get_is_private

Gets whether the private flag of the bookmark for `uri` is set.

since: 2.12

###### g_bookmark_file_get_mime_type

Retrieves the MIME type of the resource pointed by `uri`.

since: 2.12

###### g_bookmark_file_get_modified

Gets the time when the bookmark for `uri` was last modified.

deprecated: 2.66 since: 2.12

###### g_bookmark_file_get_modified_date_time

Gets the time when the bookmark for `uri` was last modified.

since: 2.66

###### g_bookmark_file_get_size

Gets the number of bookmarks inside `bookmark`.

since: 2.12

###### g_bookmark_file_get_title

Returns the title of the bookmark for `uri`.

since: 2.12

###### g_bookmark_file_get_uris

Returns all URIs of the bookmarks in the bookmark file `bookmark`. The array of returned URIs will be `NULL`-terminated, so `length` may optionally be `NULL`.

since: 2.12

###### g_bookmark_file_get_visited

Gets the time the bookmark for `uri` was last visited.

deprecated: 2.66 since: 2.12

###### g_bookmark_file_get_visited_date_time

Gets the time the bookmark for `uri` was last visited.

since: 2.66

###### g_bookmark_file_has_application

Checks whether the bookmark for `uri` inside `bookmark` has been registered by application `name`.

since: 2.12

###### g_bookmark_file_has_group

Checks whether `group` appears in the list of groups to which the bookmark for `uri` belongs to.

since: 2.12

###### g_bookmark_file_has_item

Looks whether the desktop bookmark has an item with its URI set to `uri`.

since: 2.12

###### g_bookmark_file_load_from_data

Loads a bookmark file from memory into an empty `GBookmarkFile` structure. If the object cannot be created then `error` is set to a `GBookmarkFileError`.

since: 2.12

###### g_bookmark_file_load_from_data_dirs

This function looks for a desktop bookmark file named `file` in the paths returned from `g_get_user_data_dir()` and g_get_system_data_dirs(), loads the file into `bookmark` and returns the file’s full path in `full_path`. If the file could not be loaded then `error` is set to either a `GFileError` or `GBookmarkFileError`.

since: 2.12

###### g_bookmark_file_load_from_file

Loads a desktop bookmark file into an empty `GBookmarkFile` structure. If the file could not be loaded then `error` is set to either a `GFileError` or `GBookmarkFileError`.

since: 2.12

###### g_bookmark_file_move_item

Changes the URI of a bookmark item from `old_uri` to `new_uri`. Any existing bookmark for `new_uri` will be overwritten. If `new_uri` is `NULL`, then the bookmark is removed.

since: 2.12

###### g_bookmark_file_remove_application

Removes application registered with `name` from the list of applications that have registered a bookmark for `uri` inside `bookmark`.

since: 2.12

###### g_bookmark_file_remove_group

Removes `group` from the list of groups to which the bookmark for `uri` belongs to.

since: 2.12

###### g_bookmark_file_remove_item

Removes the bookmark for `uri` from the bookmark file `bookmark`.

since: 2.12

###### g_bookmark_file_set_added

Sets the time the bookmark for `uri` was added into `bookmark`.

deprecated: 2.66 since: 2.12

###### g_bookmark_file_set_added_date_time

Sets the time the bookmark for `uri` was added into `bookmark`.

since: 2.66

###### g_bookmark_file_set_app_info

Sets the meta-data of application `name` inside the list of applications that have registered a bookmark for `uri` inside `bookmark`.

deprecated: 2.66 since: 2.12

###### g_bookmark_file_set_application_info

Sets the meta-data of application `name` inside the list of applications that have registered a bookmark for `uri` inside `bookmark`.

since: 2.66

###### g_bookmark_file_set_description

Sets `description` as the description of the bookmark for `uri`.

since: 2.12

###### g_bookmark_file_set_groups

Sets a list of group names for the item with URI `uri`. Each previously set group name list is removed.

since: 2.12

###### g_bookmark_file_set_icon

Sets the icon for the bookmark for `uri`. If `href` is `NULL`, unsets the currently set icon. `href` can either be a full URL for the icon file or the icon name following the Icon Naming specification.

since: 2.12

###### g_bookmark_file_set_is_private

Sets the private flag of the bookmark for `uri`.

since: 2.12

###### g_bookmark_file_set_mime_type

Sets `mime_type` as the MIME type of the bookmark for `uri`.

since: 2.12

###### g_bookmark_file_set_modified

Sets the last time the bookmark for `uri` was last modified.

deprecated: 2.66 since: 2.12

###### g_bookmark_file_set_modified_date_time

Sets the last time the bookmark for `uri` was last modified.

since: 2.66

###### g_bookmark_file_set_title

Sets `title` as the title of the bookmark for `uri` inside the bookmark file `bookmark`.

since: 2.12

###### g_bookmark_file_set_visited

Sets the time the bookmark for `uri` was last visited.

deprecated: 2.66 since: 2.12

###### g_bookmark_file_set_visited_date_time

Sets the time the bookmark for `uri` was last visited.

since: 2.66

###### g_bookmark_file_to_data

This function outputs `bookmark` as a string.

since: 2.12

###### g_bookmark_file_to_file

This function outputs `bookmark` into a file. The write process is guaranteed to be atomic by using `g_file_set_contents()` internally.

since: 2.12