1 <refentry id="gnome-vfs-20-gnome-vfs-directory-list-ops">
3 <refentrytitle>Listing Directory Contents</refentrytitle>
4 <manvolnum>3</manvolnum>
5 <refmiscinfo>GNOME-VFS-2.0 Library</refmiscinfo>
9 <refname>Listing Directory Contents</refname><refpurpose>
10 Listing the contents of directories.</refpurpose>
13 <refsynopsisdiv><title>Synopsis</title>
19 enum <link linkend="GnomeVFSDirectoryVisitOptions">GnomeVFSDirectoryVisitOptions</link>;
20 <link linkend="gboolean">gboolean</link> (<link linkend="GnomeVFSDirectoryVisitFunc">*GnomeVFSDirectoryVisitFunc</link>) (const <link linkend="gchar">gchar</link> *rel_path,
21 <link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *info,
22 <link linkend="gboolean">gboolean</link> recursing_will_loop,
23 <link linkend="gpointer">gpointer</link> data,
24 <link linkend="gboolean">gboolean</link> *recurse);
25 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-directory-open">gnome_vfs_directory_open</link> (<link linkend="GnomeVFSDirectoryHandle">GnomeVFSDirectoryHandle</link> **handle,
26 const <link linkend="gchar">gchar</link> *text_uri,
27 <link linkend="GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</link> options);
28 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-directory-open-from-uri">gnome_vfs_directory_open_from_uri</link>
29 (<link linkend="GnomeVFSDirectoryHandle">GnomeVFSDirectoryHandle</link> **handle,
30 <link linkend="GnomeVFSURI">GnomeVFSURI</link> *uri,
31 <link linkend="GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</link> options);
32 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-directory-read-next">gnome_vfs_directory_read_next</link>
33 (<link linkend="GnomeVFSDirectoryHandle">GnomeVFSDirectoryHandle</link> *handle,
34 <link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *file_info);
35 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-directory-close">gnome_vfs_directory_close</link> (<link linkend="GnomeVFSDirectoryHandle">GnomeVFSDirectoryHandle</link> *handle);
36 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-directory-visit">gnome_vfs_directory_visit</link> (const <link linkend="gchar">gchar</link> *uri,
37 <link linkend="GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</link> info_options,
38 <link linkend="GnomeVFSDirectoryVisitOptions">GnomeVFSDirectoryVisitOptions</link> visit_options,
39 <link linkend="GnomeVFSDirectoryVisitFunc">GnomeVFSDirectoryVisitFunc</link> callback,
40 <link linkend="gpointer">gpointer</link> data);
41 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-directory-visit-uri">gnome_vfs_directory_visit_uri</link>
42 (<link linkend="GnomeVFSURI">GnomeVFSURI</link> *uri,
43 <link linkend="GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</link> info_options,
44 <link linkend="GnomeVFSDirectoryVisitOptions">GnomeVFSDirectoryVisitOptions</link> visit_options,
45 <link linkend="GnomeVFSDirectoryVisitFunc">GnomeVFSDirectoryVisitFunc</link> callback,
46 <link linkend="gpointer">gpointer</link> data);
47 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-directory-visit-files">gnome_vfs_directory_visit_files</link>
48 (const <link linkend="gchar">gchar</link> *text_uri,
49 <link linkend="GList">GList</link> *file_list,
50 <link linkend="GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</link> info_options,
51 <link linkend="GnomeVFSDirectoryVisitOptions">GnomeVFSDirectoryVisitOptions</link> visit_options,
52 <link linkend="GnomeVFSDirectoryVisitFunc">GnomeVFSDirectoryVisitFunc</link> callback,
53 <link linkend="gpointer">gpointer</link> data);
54 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-directory-visit-files-at-uri">gnome_vfs_directory_visit_files_at_uri</link>
55 (<link linkend="GnomeVFSURI">GnomeVFSURI</link> *uri,
56 <link linkend="GList">GList</link> *file_list,
57 <link linkend="GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</link> info_options,
58 <link linkend="GnomeVFSDirectoryVisitOptions">GnomeVFSDirectoryVisitOptions</link> visit_options,
59 <link linkend="GnomeVFSDirectoryVisitFunc">GnomeVFSDirectoryVisitFunc</link> callback,
60 <link linkend="gpointer">gpointer</link> data);
61 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-directory-list-load">gnome_vfs_directory_list_load</link>
62 (<link linkend="GList">GList</link> **list,
63 const <link linkend="gchar">gchar</link> *text_uri,
64 <link linkend="GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</link> options);
77 <title>Description</title>
84 <title>Details</title>
86 <title><anchor id="GnomeVFSDirectoryVisitOptions"/>enum GnomeVFSDirectoryVisitOptions</title>
87 <indexterm><primary>GnomeVFSDirectoryVisitOptions</primary></indexterm><programlisting>typedef enum {
88 GNOME_VFS_DIRECTORY_VISIT_DEFAULT = 0,
89 GNOME_VFS_DIRECTORY_VISIT_SAMEFS = 1 << 0,
90 GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK = 1 << 1
91 } GnomeVFSDirectoryVisitOptions;
94 This options control the way in which directories are visited.</para>
97 </para><variablelist role="enum">
99 <term><literal>GNOME_VFS_DIRECTORY_VISIT_DEFAULT</literal></term>
101 </simpara></listitem>
104 <term><literal>GNOME_VFS_DIRECTORY_VISIT_SAMEFS</literal></term>
105 <listitem><simpara> Visit only directories on the same
106 file system as the parent
107 </simpara></listitem>
110 <term><literal>GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK</literal></term>
111 <listitem><simpara> Loop prevention
112 </simpara></listitem>
114 </variablelist></refsect2>
116 <title><anchor id="GnomeVFSDirectoryVisitFunc"/>GnomeVFSDirectoryVisitFunc ()</title>
117 <indexterm><primary>GnomeVFSDirectoryVisitFunc</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> (*GnomeVFSDirectoryVisitFunc) (const <link linkend="gchar">gchar</link> *rel_path,
118 <link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *info,
119 <link linkend="gboolean">gboolean</link> recursing_will_loop,
120 <link linkend="gpointer">gpointer</link> data,
121 <link linkend="gboolean">gboolean</link> *recurse);</programlisting>
124 </para><variablelist role="params">
125 <varlistentry><term><parameter>rel_path</parameter> :</term>
127 </simpara></listitem></varlistentry>
128 <varlistentry><term><parameter>info</parameter> :</term>
130 </simpara></listitem></varlistentry>
131 <varlistentry><term><parameter>recursing_will_loop</parameter> :</term>
133 </simpara></listitem></varlistentry>
134 <varlistentry><term><parameter>data</parameter> :</term>
136 </simpara></listitem></varlistentry>
137 <varlistentry><term><parameter>recurse</parameter> :</term>
139 </simpara></listitem></varlistentry>
140 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
143 </simpara></listitem></varlistentry>
144 </variablelist></refsect2>
146 <title><anchor id="gnome-vfs-directory-open"/>gnome_vfs_directory_open ()</title>
147 <indexterm><primary>gnome_vfs_directory_open</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_directory_open (<link linkend="GnomeVFSDirectoryHandle">GnomeVFSDirectoryHandle</link> **handle,
148 const <link linkend="gchar">gchar</link> *text_uri,
149 <link linkend="GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</link> options);</programlisting>
151 Open directory <parameter>text_uri</parameter> for reading. On return, @*handle will point to
152 a <literal>GnomeVFSDirectoryHandle</literal> object which can be used to read the directory
153 entries one by one.</para>
156 </para><variablelist role="params">
157 <varlistentry><term><parameter>handle</parameter> :</term>
158 <listitem><simpara> A pointer to a pointer to a GnomeVFSDirectoryHandle object
159 </simpara></listitem></varlistentry>
160 <varlistentry><term><parameter>text_uri</parameter> :</term>
161 <listitem><simpara> String representing the URI to open
162 </simpara></listitem></varlistentry>
163 <varlistentry><term><parameter>options</parameter> :</term>
164 <listitem><simpara> Options for reading file information
165 </simpara></listitem></varlistentry>
166 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation
167 </simpara></listitem></varlistentry>
168 </variablelist></refsect2>
170 <title><anchor id="gnome-vfs-directory-open-from-uri"/>gnome_vfs_directory_open_from_uri ()</title>
171 <indexterm><primary>gnome_vfs_directory_open_from_uri</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_directory_open_from_uri
172 (<link linkend="GnomeVFSDirectoryHandle">GnomeVFSDirectoryHandle</link> **handle,
173 <link linkend="GnomeVFSURI">GnomeVFSURI</link> *uri,
174 <link linkend="GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</link> options);</programlisting>
176 Open directory <parameter>text_uri</parameter> for reading. On return, @*handle will point to
177 a <literal>GnomeVFSDirectoryHandle</literal> object which can be used to read the directory
178 entries one by one.</para>
181 </para><variablelist role="params">
182 <varlistentry><term><parameter>handle</parameter> :</term>
183 <listitem><simpara> A pointer to a pointer to a GnomeVFSDirectoryHandle object
184 </simpara></listitem></varlistentry>
185 <varlistentry><term><parameter>uri</parameter> :</term>
186 <listitem><simpara> URI to open
187 </simpara></listitem></varlistentry>
188 <varlistentry><term><parameter>options</parameter> :</term>
189 <listitem><simpara> Options for reading file information
190 </simpara></listitem></varlistentry>
191 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation.
192 </simpara></listitem></varlistentry>
193 </variablelist></refsect2>
195 <title><anchor id="gnome-vfs-directory-read-next"/>gnome_vfs_directory_read_next ()</title>
196 <indexterm><primary>gnome_vfs_directory_read_next</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_directory_read_next
197 (<link linkend="GnomeVFSDirectoryHandle">GnomeVFSDirectoryHandle</link> *handle,
198 <link linkend="GnomeVFSFileInfo">GnomeVFSFileInfo</link> *file_info);</programlisting>
200 Read the next directory entry from <parameter>handle</parameter>.</para>
203 </para><variablelist role="params">
204 <varlistentry><term><parameter>handle</parameter> :</term>
205 <listitem><simpara> A directory handle
206 </simpara></listitem></varlistentry>
207 <varlistentry><term><parameter>file_info</parameter> :</term>
208 <listitem><simpara> Pointer to a <literal>GnomeVFSFileInfo</literal> struct where the data about
209 the entry will be stored
210 </simpara></listitem></varlistentry>
211 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer value representing the result of the operation.
212 </simpara></listitem></varlistentry>
213 </variablelist></refsect2>
215 <title><anchor id="gnome-vfs-directory-close"/>gnome_vfs_directory_close ()</title>
216 <indexterm><primary>gnome_vfs_directory_close</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_directory_close (<link linkend="GnomeVFSDirectoryHandle">GnomeVFSDirectoryHandle</link> *handle);</programlisting>
218 Close <parameter>handle</parameter>.</para>
221 </para><variablelist role="params">
222 <varlistentry><term><parameter>handle</parameter> :</term>
223 <listitem><simpara> A directory handle.
224 </simpara></listitem></varlistentry>
225 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation.
226 </simpara></listitem></varlistentry>
227 </variablelist></refsect2>
229 <title><anchor id="gnome-vfs-directory-visit"/>gnome_vfs_directory_visit ()</title>
230 <indexterm><primary>gnome_vfs_directory_visit</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_directory_visit (const <link linkend="gchar">gchar</link> *uri,
231 <link linkend="GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</link> info_options,
232 <link linkend="GnomeVFSDirectoryVisitOptions">GnomeVFSDirectoryVisitOptions</link> visit_options,
233 <link linkend="GnomeVFSDirectoryVisitFunc">GnomeVFSDirectoryVisitFunc</link> callback,
234 <link linkend="gpointer">gpointer</link> data);</programlisting>
236 Visit <parameter>uri</parameter>, retrieving information as specified by <parameter>info_options</parameter>.</para>
239 </para><variablelist role="params">
240 <varlistentry><term><parameter>uri</parameter> :</term>
241 <listitem><simpara> URI to start from
242 </simpara></listitem></varlistentry>
243 <varlistentry><term><parameter>info_options</parameter> :</term>
244 <listitem><simpara> Options specifying what kind of file information must be
246 </simpara></listitem></varlistentry>
247 <varlistentry><term><parameter>visit_options</parameter> :</term>
248 <listitem><simpara> Options specifying the type of visit
249 </simpara></listitem></varlistentry>
250 <varlistentry><term><parameter>callback</parameter> :</term>
251 <listitem><simpara> Callback to be called for every visited file
252 </simpara></listitem></varlistentry>
253 <varlistentry><term><parameter>data</parameter> :</term>
254 <listitem><simpara> Data to be passed to <parameter>callback</parameter> at each iteration
255 </simpara></listitem></varlistentry>
256 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
257 </simpara></listitem></varlistentry>
258 </variablelist></refsect2>
260 <title><anchor id="gnome-vfs-directory-visit-uri"/>gnome_vfs_directory_visit_uri ()</title>
261 <indexterm><primary>gnome_vfs_directory_visit_uri</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_directory_visit_uri
262 (<link linkend="GnomeVFSURI">GnomeVFSURI</link> *uri,
263 <link linkend="GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</link> info_options,
264 <link linkend="GnomeVFSDirectoryVisitOptions">GnomeVFSDirectoryVisitOptions</link> visit_options,
265 <link linkend="GnomeVFSDirectoryVisitFunc">GnomeVFSDirectoryVisitFunc</link> callback,
266 <link linkend="gpointer">gpointer</link> data);</programlisting>
268 Visit <parameter>uri</parameter>, retrieving information as specified by <parameter>info_options</parameter>.</para>
271 </para><variablelist role="params">
272 <varlistentry><term><parameter>uri</parameter> :</term>
273 <listitem><simpara> URI to start from
274 </simpara></listitem></varlistentry>
275 <varlistentry><term><parameter>info_options</parameter> :</term>
276 <listitem><simpara> Options specifying what kind of file information must be
278 </simpara></listitem></varlistentry>
279 <varlistentry><term><parameter>visit_options</parameter> :</term>
280 <listitem><simpara> Options specifying the type of visit
281 </simpara></listitem></varlistentry>
282 <varlistentry><term><parameter>callback</parameter> :</term>
283 <listitem><simpara> Callback to be called for every visited file
284 </simpara></listitem></varlistentry>
285 <varlistentry><term><parameter>data</parameter> :</term>
286 <listitem><simpara> Data to be passed to <parameter>callback</parameter> at each iteration
287 </simpara></listitem></varlistentry>
288 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> A result code indicating whether the operation succeeded.
290 </simpara></listitem></varlistentry>
291 </variablelist></refsect2>
293 <title><anchor id="gnome-vfs-directory-visit-files"/>gnome_vfs_directory_visit_files ()</title>
294 <indexterm><primary>gnome_vfs_directory_visit_files</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_directory_visit_files
295 (const <link linkend="gchar">gchar</link> *text_uri,
296 <link linkend="GList">GList</link> *file_list,
297 <link linkend="GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</link> info_options,
298 <link linkend="GnomeVFSDirectoryVisitOptions">GnomeVFSDirectoryVisitOptions</link> visit_options,
299 <link linkend="GnomeVFSDirectoryVisitFunc">GnomeVFSDirectoryVisitFunc</link> callback,
300 <link linkend="gpointer">gpointer</link> data);</programlisting>
302 Fetches information about a list of files in a base URI <parameter>uri</parameter>.</para>
305 </para><variablelist role="params">
306 <varlistentry><term><parameter>text_uri</parameter> :</term>
307 <listitem><simpara> string representing the URI of a directory to "visit" the files in
308 </simpara></listitem></varlistentry>
309 <varlistentry><term><parameter>file_list</parameter> :</term>
310 <listitem><simpara> GList of char *s of file names in <parameter>uri</parameter> to visit
311 </simpara></listitem></varlistentry>
312 <varlistentry><term><parameter>info_options</parameter> :</term>
313 <listitem><simpara> bitmask controlling the type of information to fetch
314 </simpara></listitem></varlistentry>
315 <varlistentry><term><parameter>visit_options</parameter> :</term>
316 <listitem><simpara> options controlling e.g. loop prevention, and filesystem checks.
317 Affects the way visiting is done.
318 </simpara></listitem></varlistentry>
319 <varlistentry><term><parameter>callback</parameter> :</term>
320 <listitem><simpara> function to call with the file info structs
321 </simpara></listitem></varlistentry>
322 <varlistentry><term><parameter>data</parameter> :</term>
323 <listitem><simpara> data to pass to <parameter>callback</parameter>.
324 </simpara></listitem></varlistentry>
325 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a GnomeVFSResult indication the success of the operation
326 </simpara></listitem></varlistentry>
327 </variablelist></refsect2>
329 <title><anchor id="gnome-vfs-directory-visit-files-at-uri"/>gnome_vfs_directory_visit_files_at_uri ()</title>
330 <indexterm><primary>gnome_vfs_directory_visit_files_at_uri</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_directory_visit_files_at_uri
331 (<link linkend="GnomeVFSURI">GnomeVFSURI</link> *uri,
332 <link linkend="GList">GList</link> *file_list,
333 <link linkend="GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</link> info_options,
334 <link linkend="GnomeVFSDirectoryVisitOptions">GnomeVFSDirectoryVisitOptions</link> visit_options,
335 <link linkend="GnomeVFSDirectoryVisitFunc">GnomeVFSDirectoryVisitFunc</link> callback,
336 <link linkend="gpointer">gpointer</link> data);</programlisting>
338 Fetches information about a list of files in a base URI <parameter>uri</parameter>.</para>
341 </para><variablelist role="params">
342 <varlistentry><term><parameter>uri</parameter> :</term>
343 <listitem><simpara> URI of a directory to "visit" the files in
344 </simpara></listitem></varlistentry>
345 <varlistentry><term><parameter>file_list</parameter> :</term>
346 <listitem><simpara> GList of char *s of file names in <parameter>uri</parameter> to visit
347 </simpara></listitem></varlistentry>
348 <varlistentry><term><parameter>info_options</parameter> :</term>
349 <listitem><simpara> bitmask controlling the type of information to fetch
350 </simpara></listitem></varlistentry>
351 <varlistentry><term><parameter>visit_options</parameter> :</term>
352 <listitem><simpara> options controlling e.g. loop prevention, and filesystem checks.
353 Affects the way visiting is done.
354 </simpara></listitem></varlistentry>
355 <varlistentry><term><parameter>callback</parameter> :</term>
356 <listitem><simpara> function to call with the file info structs
357 </simpara></listitem></varlistentry>
358 <varlistentry><term><parameter>data</parameter> :</term>
359 <listitem><simpara> data to pass to <parameter>callback</parameter>.
360 </simpara></listitem></varlistentry>
361 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a GnomeVFSResult indication the success of the operation
362 </simpara></listitem></varlistentry>
363 </variablelist></refsect2>
365 <title><anchor id="gnome-vfs-directory-list-load"/>gnome_vfs_directory_list_load ()</title>
366 <indexterm><primary>gnome_vfs_directory_list_load</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_directory_list_load
367 (<link linkend="GList">GList</link> **list,
368 const <link linkend="gchar">gchar</link> *text_uri,
369 <link linkend="GnomeVFSFileInfoOptions">GnomeVFSFileInfoOptions</link> options);</programlisting>
371 Load a directory from <parameter>text_uri</parameter> with the specified <parameter>options</parameter>
375 </para><variablelist role="params">
376 <varlistentry><term><parameter>list</parameter> :</term>
377 <listitem><simpara> An address of a pointer to a list of GnomeVFSFileInfo
378 </simpara></listitem></varlistentry>
379 <varlistentry><term><parameter>text_uri</parameter> :</term>
380 <listitem><simpara> A text URI
381 </simpara></listitem></varlistentry>
382 <varlistentry><term><parameter>options</parameter> :</term>
383 <listitem><simpara> Options for loading the directory
384 </simpara></listitem></varlistentry>
385 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation.
386 </simpara></listitem></varlistentry>
387 </variablelist></refsect2>