## MIME typing

MIME typing — functions to get a mime-type for a file using its name or its content

## Synopsis

    const char *        gnome_vfs_mime_type_from_name       (const char *filename);
    const char *        gnome_vfs_mime_type_from_name_or_default
                                                            (const char *filename,
                                                             const char *defaultv);
    const char *        gnome_vfs_get_mime_type_common      (GnomeVFSURI *uri);
    const char *        gnome_vfs_get_mime_type_from_uri    (GnomeVFSURI *uri);
    const char *        gnome_vfs_get_mime_type_from_file_data
                                                            (GnomeVFSURI *uri);
    const char *        gnome_vfs_get_file_mime_type_fast   (const char *path,
                                                             const struct stat *optional_stat_info);
    const char *        gnome_vfs_get_file_mime_type        (const char *path,
                                                             const struct stat *optional_stat_info,
                                                             gboolean suffix_only);
    gboolean            gnome_vfs_mime_type_is_supertype    (const char *mime_type);
    char *              gnome_vfs_get_supertype_from_mime_type
                                                            (const char *mime_type);
    void                gnome_vfs_mime_info_cache_reload    (const char *dir);
    void                gnome_vfs_mime_reload               (void);
    void                gnome_vfs_mime_shutdown             (void);

## Description

## Details

### gnome_vfs_mime_type_from_name ()

    const char *        gnome_vfs_mime_type_from_name       (const char *filename);

### Warning

`gnome_vfs_mime_type_from_name` is deprecated and should not be used in newly-written code. This function is deprecated, use `gnome_vfs_get_mime_type_for_name()` instead.

Determine the mime type for `filename`.

`filename` : | a filename (the file does not necessarily exist).
Returns : | the mime-type for this filename. Will return `GNOME_VFS_MIME_TYPE_UNKNOWN` if mime-type could not be found.

### gnome_vfs_mime_type_from_name_or_default ()

    const char *        gnome_vfs_mime_type_from_name_or_default
                                                            (const char *filename,
                                                             const char *defaultv);

This routine tries to determine the mime-type of the filename only by looking at the filename from the GNOME database of mime-types.

`filename` : | a filename (the file does not necessarily exist).
`defaultv` : | a default value to be returned if no match is found.
Returns : | the mime-type of the `filename`. If no value could be determined, it will return `defaultv`.

### gnome_vfs_get_mime_type_common ()

    const char *        gnome_vfs_get_mime_type_common      (GnomeVFSURI *uri);

Tries to guess the mime type of the file represented by `uri`. Favors using the file data to the `uri` extension. Handles `uri` of a non-existent file by falling back on returning a type based on the extension. If cant find the mime-type based on the extension also then returns 'application/octet-stream'.

FIXME: This function will not necessarily return the same mime type as doing a get file info on the text uri.

`uri` : | a real file or a non-existent uri.
Returns : | the mime-type for `uri`.

### gnome_vfs_get_mime_type_from_uri ()

    const char *        gnome_vfs_get_mime_type_from_uri    (GnomeVFSURI *uri);

Tries to guess the mime type of the file `uri` by checking the file name extension. Works on non-existent files.

`uri` : | a file uri.
Returns : | the mime-type for file at `uri`.

### gnome_vfs_get_mime_type_from_file_data ()

    const char *        gnome_vfs_get_mime_type_from_file_data
                                                            (GnomeVFSURI *uri);

### Warning

`gnome_vfs_get_mime_type_from_file_data` is deprecated and should not be used in newly-written code.

Tries to guess the mime type of the file `uri` by checking the file data using the magic patterns. Does not handle text files properly.

`uri` : | a file uri.
Returns : | the mime-type for this filename.

### gnome_vfs_get_file_mime_type_fast ()

    const char *        gnome_vfs_get_file_mime_type_fast   (const char *path,
                                                             const struct stat *optional_stat_info);

Tries to guess the mime type of the file represented by `path`. It uses extention/name detection first, and if that fails it falls back to mime-magic based lookup. This is faster than always doing mime-magic but doesn't always produce the right answer, so for important decisions you should use `gnome_vfs_get_file_mime_type()`.

`path` : | path of the file whose mime type is to be found out.
`optional_stat_info` : | optional stat buffer.
Returns : | the mime-type for file at `path`.

### gnome_vfs_get_file_mime_type ()

    const char *        gnome_vfs_get_file_mime_type        (const char *path,
                                                             const struct stat *optional_stat_info,
                                                             gboolean suffix_only);

Tries to guess the mime type of the file represented by `path`. If `suffix_only` is false, uses the mime-magic based lookup first. Handles `path` of a non-existent file by falling back on returning a type based on the extension.

If you need a faster, less accurate version, use `gnome_vfs_get_file_mime_type_fast()`.

`path` : | path of a file whose mime type is to be found out.
`optional_stat_info` : | optional stat buffer.
`suffix_only` : | whether or not to do a magic-based lookup.
Returns : | the mime-type for file at `path`.

### gnome_vfs_mime_type_is_supertype ()

    gboolean            gnome_vfs_mime_type_is_supertype    (const char *mime_type);

`mime_type` : | a const char * identifying a mime type.
Returns : | Whether `mime_type` is of the form "foo`/`*".

### gnome_vfs_get_supertype_from_mime_type ()

    char *              gnome_vfs_get_supertype_from_mime_type
                                                            (const char *mime_type);

`mime_type` : | mime type to get the supertype for.

Returns :

The supertype for `mime_type`, allocating new memory. The supertype of an application is computed by removing its suffix, and replacing it with "*". Thus, "foo/bar" will be converted to "foo`/`*".

### Note

If this function is called on a supertype, it will return a copy of the supertype.

### gnome_vfs_mime_info_cache_reload ()

    void                gnome_vfs_mime_info_cache_reload    (const char *dir);

Reload the mime information for the `dir`.

`dir` : | directory path which needs reloading.

### gnome_vfs_mime_reload ()

    void                gnome_vfs_mime_reload               (void);

Reload the MIME database.

### gnome_vfs_mime_shutdown ()

    void                gnome_vfs_mime_shutdown             (void);

### Warning

`gnome_vfs_mime_shutdown` is deprecated and should not be used in newly-written code. This function doesn't have to be called as the operating system automatically cleans up resources when exiting.

Unload the MIME database from memory.