Locating Standard Directories

Locating Standard Directories — Utilities for locating standard directories such as the desktop and trash

Synopsis

enum                MateVFSFindDirectoryKind;
MateVFSResult      mate_vfs_find_directory            (MateVFSURI *near_uri,
                                                         MateVFSFindDirectoryKind kind,
                                                         MateVFSURI **result,
                                                         gboolean create_if_needed,
                                                         gboolean find_if_needed,
                                                         guint permissions);

Description

Details

enum MateVFSFindDirectoryKind

typedef enum {
	MATE_VFS_DIRECTORY_KIND_DESKTOP = 1000,
	MATE_VFS_DIRECTORY_KIND_TRASH = 1001
} MateVFSFindDirectoryKind;

Specifies what directory mate_vfs_find_directory() or mate_vfs_find_directory_cancellable() should find.

MATE_VFS_DIRECTORY_KIND_DESKTOP

Desktop directory.

MATE_VFS_DIRECTORY_KIND_TRASH

Trash directory.

mate_vfs_find_directory ()

MateVFSResult      mate_vfs_find_directory            (MateVFSURI *near_uri,
                                                         MateVFSFindDirectoryKind kind,
                                                         MateVFSURI **result,
                                                         gboolean create_if_needed,
                                                         gboolean find_if_needed,
                                                         guint permissions);

Used to return well known directories such as Trash, Desktop, etc. from different file systems.

There is quite a complicated logic behind finding/creating a Trash directory and you need to be aware of some implications: Finding the Trash the first time when using the file method may be pretty expensive. A cache file is used to store the location of that Trash file for next time. If create_if_needed is specified without find_if_needed, you may end up creating a Trash file when there already is one. Your app should start out by doing a mate_vfs_find_directory() with the find_if_needed to avoid this and then use the create_if_needed flag to create Trash lazily when it is needed for throwing away an item on a given disk.

near_uri :

find a well known directory on the same volume as near_uri.

kind :

kind of well known directory.

result :

newly created uri of the directory we found.

create_if_needed :

if directory we are looking for does not exist, try to create it.

find_if_needed :

if we don't know where directory is yet, look for it.

permissions :

if creating, use these permissions.

Returns :

an integer representing the result of the operation.