1 <refentry id="gnome-vfs-20-gnome-vfs-directory-find-ops">
3 <refentrytitle>Locating Standard Directories</refentrytitle>
4 <manvolnum>3</manvolnum>
5 <refmiscinfo>GNOME-VFS-2.0 Library</refmiscinfo>
9 <refname>Locating Standard Directories</refname><refpurpose>
10 Utilities for locating standard directories such as the desktop and trash</refpurpose>
13 <refsynopsisdiv><title>Synopsis</title>
19 enum <link linkend="GnomeVFSFindDirectoryKind">GnomeVFSFindDirectoryKind</link>;
20 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-find-directory">gnome_vfs_find_directory</link> (<link linkend="GnomeVFSURI">GnomeVFSURI</link> *near_uri,
21 <link linkend="GnomeVFSFindDirectoryKind">GnomeVFSFindDirectoryKind</link> kind,
22 <link linkend="GnomeVFSURI">GnomeVFSURI</link> **result,
23 <link linkend="gboolean">gboolean</link> create_if_needed,
24 <link linkend="gboolean">gboolean</link> find_if_needed,
25 <link linkend="guint">guint</link> permissions);
38 <title>Description</title>
45 <title>Details</title>
47 <title><anchor id="GnomeVFSFindDirectoryKind"/>enum GnomeVFSFindDirectoryKind</title>
48 <indexterm><primary>GnomeVFSFindDirectoryKind</primary></indexterm><programlisting>typedef enum {
49 GNOME_VFS_DIRECTORY_KIND_DESKTOP = 1000,
50 GNOME_VFS_DIRECTORY_KIND_TRASH = 1001
51 } GnomeVFSFindDirectoryKind;
57 <title><anchor id="gnome-vfs-find-directory"/>gnome_vfs_find_directory ()</title>
58 <indexterm><primary>gnome_vfs_find_directory</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_find_directory (<link linkend="GnomeVFSURI">GnomeVFSURI</link> *near_uri,
59 <link linkend="GnomeVFSFindDirectoryKind">GnomeVFSFindDirectoryKind</link> kind,
60 <link linkend="GnomeVFSURI">GnomeVFSURI</link> **result,
61 <link linkend="gboolean">gboolean</link> create_if_needed,
62 <link linkend="gboolean">gboolean</link> find_if_needed,
63 <link linkend="guint">guint</link> permissions);</programlisting>
65 Used to return well known directories such as Trash, Desktop, etc. from different
69 There is quite a complicated logic behind finding/creating a Trash directory
70 and you need to be aware of some implications:
71 Finding the Trash the first time when using the file method may be pretty
72 expensive. A cache file is used to store the location of that Trash file
74 If <parameter>ceate_if_needed</parameter> is specified without <parameter>find_if_needed</parameter>, you may end up
75 creating a Trash file when there already is one. Your app should start out
76 by doing a gnome_vfs_find_directory with the <parameter>find_if_needed</parameter> to avoid this
77 and then use the <parameter>create_if_needed</parameter> flag to create Trash lazily when it is
78 needed for throwing away an item on a given disk.</para>
81 </para><variablelist role="params">
82 <varlistentry><term><parameter>near_uri</parameter> :</term>
83 <listitem><simpara> find a well known directory on the same volume as <parameter>near_uri</parameter>
84 </simpara></listitem></varlistentry>
85 <varlistentry><term><parameter>kind</parameter> :</term>
86 <listitem><simpara> kind of well known directory
87 </simpara></listitem></varlistentry>
88 <varlistentry><term><parameter>result</parameter> :</term>
89 <listitem><simpara> newly created URI of the directory we found
90 </simpara></listitem></varlistentry>
91 <varlistentry><term><parameter>create_if_needed</parameter> :</term>
92 <listitem><simpara> If directory we are looking for does not exist, try to create it
93 </simpara></listitem></varlistentry>
94 <varlistentry><term><parameter>find_if_needed</parameter> :</term>
95 <listitem><simpara> If we don't know where trash is yet, look for it.
96 </simpara></listitem></varlistentry>
97 <varlistentry><term><parameter>permissions</parameter> :</term>
98 <listitem><simpara> If creating, use these permissions
99 </simpara></listitem></varlistentry>
100 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation
101 </simpara></listitem></varlistentry>
102 </variablelist></refsect2>