Locating Standard Directories
3
GNOME-VFS-2.0 Library

# 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.