GContentType

GContentType — Platform-specific content typing

Synopsis

#include <gio/gio.h>

gboolean            g_content_type_equals               (const gchar *type1,
                                                         const gchar *type2);
gboolean            g_content_type_is_a                 (const gchar *type,
                                                         const gchar *supertype);
gboolean            g_content_type_is_unknown           (const gchar *type);
gchar *             g_content_type_get_description      (const gchar *type);
gchar *             g_content_type_get_mime_type        (const gchar *type);
GIcon *             g_content_type_get_icon             (const gchar *type);
gboolean            g_content_type_can_be_executable    (const gchar *type);
gchar *             g_content_type_from_mime_type       (const gchar *mime_type);
gchar *             g_content_type_guess                (const gchar *filename,
                                                         const guchar *data,
                                                         gsize data_size,
                                                         gboolean *result_uncertain);
gchar **            g_content_type_guess_for_tree       (GFile *root);
GList *             g_content_types_get_registered      (void);

Description

A content type is a platform specific string that defines the type of a file. On UNIX it is a mime type like "text/plain" or "image/png". On Win32 it is an extension string like ".doc", ".txt" or a perceived string like "audio". Such strings can be looked up in the registry at HKEY_CLASSES_ROOT.

Details

g_content_type_equals ()

gboolean            g_content_type_equals               (const gchar *type1,
                                                         const gchar *type2);

Compares two content types for equality.

type1 :

a content type string

type2 :

a content type string

Returns :

TRUE if the two strings are identical or equivalent, FALSE otherwise.

g_content_type_is_a ()

gboolean            g_content_type_is_a                 (const gchar *type,
                                                         const gchar *supertype);

Determines if type is a subset of supertype.

type :

a content type string

supertype :

a content type string

Returns :

TRUE if type is a kind of supertype, FALSE otherwise.

g_content_type_is_unknown ()

gboolean            g_content_type_is_unknown           (const gchar *type);

Checks if the content type is the generic "unknown" type. On UNIX this is the "application/octet-stream" mimetype, while on win32 it is "*".

type :

a content type string

Returns :

TRUE if the type is the unknown type.

g_content_type_get_description ()

gchar *             g_content_type_get_description      (const gchar *type);

Gets the human readable description of the content type.

type :

a content type string

Returns :

a short description of the content type type. Free the returned string with g_free()

g_content_type_get_mime_type ()

gchar *             g_content_type_get_mime_type        (const gchar *type);

Gets the mime type for the content type, if one is registered.

type :

a content type string

Returns :

the registered mime type for the given type, or NULL if unknown. [allow-none]

g_content_type_get_icon ()

GIcon *             g_content_type_get_icon             (const gchar *type);

Gets the icon for a content type.

type :

a content type string

Returns :

GIcon corresponding to the content type. Free the returned object with g_object_unref(). [transfer full]

g_content_type_can_be_executable ()

gboolean            g_content_type_can_be_executable    (const gchar *type);

Checks if a content type can be executable. Note that for instance things like text files can be executables (i.e. scripts and batch files).

type :

a content type string

Returns :

TRUE if the file type corresponds to a type that can be executable, FALSE otherwise.

g_content_type_from_mime_type ()

gchar *             g_content_type_from_mime_type       (const gchar *mime_type);

Tries to find a content type based on the mime type name.

mime_type :

a mime type string

Returns :

Newly allocated string with content type or NULL. Free with g_free(). [allow-none]

Since 2.18


g_content_type_guess ()

gchar *             g_content_type_guess                (const gchar *filename,
                                                         const guchar *data,
                                                         gsize data_size,
                                                         gboolean *result_uncertain);

Guesses the content type based on example data. If the function is uncertain, result_uncertain will be set to TRUE. Either filename or data may be NULL, in which case the guess will be based solely on the other argument.

filename :

a string, or NULL. [allow-none]

data :

a stream of data, or NULL. [allow-none][array length=data_size]

data_size :

the size of data

result_uncertain :

return location for the certainty of the result, or NULL. [allow-none][out]

Returns :

a string indicating a guessed content type for the given data. Free with g_free()

g_content_type_guess_for_tree ()

gchar **            g_content_type_guess_for_tree       (GFile *root);

Tries to guess the type of the tree with root root, by looking at the files it contains. The result is an array of content types, with the best guess coming first.

The types returned all have the form x-content/foo, e.g. x-content/audio-cdda (for audio CDs) or x-content/image-dcf (for a camera memory card). See the shared-mime-info specification for more on x-content types.

This function is useful in the implementation of g_mount_guess_content_type().

root :

the root of the tree to guess a type for

Returns :

an NULL-terminated array of zero or more content types, or NULL. Free with g_strfreev(). [transfer full][array zero-terminated=1]

Since 2.18


g_content_types_get_registered ()

GList *             g_content_types_get_registered      (void);

Gets a list of strings containing all the registered content types known to the system. The list and its data should be freed using

g_list_foreach (list, g_free, NULL);
g_list_free (list);

Returns :

GList of the registered content types. [element-type utf8][transfer full]