Locating Standard Directories

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

Synopsis




enum        GnomeVFSFindDirectoryKind;
GnomeVFSResult gnome_vfs_find_directory     (GnomeVFSURI *near_uri,
                                             GnomeVFSFindDirectoryKind kind,
                                             GnomeVFSURI **result,
                                             gboolean create_if_needed,
                                             gboolean find_if_needed,
                                             guint permissions);

Description

Details

enum GnomeVFSFindDirectoryKind

typedef enum {
	GNOME_VFS_DIRECTORY_KIND_DESKTOP = 1000,
	GNOME_VFS_DIRECTORY_KIND_TRASH = 1001
} GnomeVFSFindDirectoryKind;

Specifies what directory gnome_vfs_find_directory() or gnome_vfs_find_directory_cancellable() should find.

GNOME_VFS_DIRECTORY_KIND_DESKTOP Desktop directory.
GNOME_VFS_DIRECTORY_KIND_TRASH Trash directory.

gnome_vfs_find_directory ()

GnomeVFSResult gnome_vfs_find_directory     (GnomeVFSURI *near_uri,
                                             GnomeVFSFindDirectoryKind kind,
                                             GnomeVFSURI **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 gnome_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.