1 <?xml version="1.0" standalone="no"?>
2 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3 "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
5 <refentry id="class-giofileenumerator">
7 <refname>gio.FileEnumerator</refname>
8 <refpurpose>Enumerated Files Routines.</refpurpose>
12 <title>Synopsis</title>
14 <classsynopsis language="python">
15 <ooclass><classname>gio.FileEnumerator</classname></ooclass>
16 <ooclass><classname><link linkend="class-gobject">gobject.GObject</link></classname></ooclass>
18 <methodsynopsis language="python">
19 <methodname><link linkend="method-giofileenumerator--close">close</link></methodname>
20 <methodparam><parameter role="keyword">cancellable</parameter><initializer><literal>None</literal></initializer></methodparam>
22 <methodsynopsis language="python">
23 <methodname><link linkend="method-giofileenumerator--close-async">close_async</link></methodname>
24 <methodparam><parameter role="keyword">callback</parameter></methodparam>
25 <methodparam><parameter role="keyword">io_priority</parameter><initializer><literal>glib.PRIORITY_DEFAULT</literal></initializer></methodparam>
26 <methodparam><parameter role="keyword">cancellable</parameter><initializer><literal>None</literal></initializer></methodparam>
27 <methodparam><parameter role="keyword">user_data</parameter><initializer><literal>None</literal></initializer></methodparam>
29 <methodsynopsis language="python">
30 <methodname><link linkend="method-giofileenumerator--close-finish">close_finish</link></methodname>
31 <methodparam><parameter role="keyword">result</parameter></methodparam>
33 <methodsynopsis language="python">
34 <methodname><link linkend="method-giofileenumerator--get-container">get_container</link></methodname>
35 <methodparam></methodparam>
37 <methodsynopsis language="python">
38 <methodname><link linkend="method-giofileenumerator--has-pending">has_pending</link></methodname>
39 <methodparam></methodparam>
41 <methodsynopsis language="python">
42 <methodname><link linkend="method-giofileenumerator--is-closed">is_closed</link></methodname>
43 <methodparam></methodparam>
45 <methodsynopsis language="python">
46 <methodname><link linkend="method-giofileenumerator--next-file">next_file</link></methodname>
47 <methodparam><parameter role="keyword">cancellable</parameter><initializer><literal>None</literal></initializer></methodparam>
49 <methodsynopsis language="python">
50 <methodname><link linkend="method-giofileenumerator--next-files-async">next_files_async</link></methodname>
51 <methodparam><parameter role="keyword">num_files</parameter></methodparam>
52 <methodparam><parameter role="keyword">callback</parameter></methodparam>
53 <methodparam><parameter role="keyword">io_priority</parameter><initializer><literal>glib.PRIORITY_DEFAULT</literal></initializer></methodparam>
54 <methodparam><parameter role="keyword">cancellable</parameter><initializer><literal>None</literal></initializer></methodparam>
55 <methodparam><parameter role="keyword">user_data</parameter><initializer><literal>None</literal></initializer></methodparam>
57 <methodsynopsis language="python">
58 <methodname><link linkend="method-giofileenumerator--next-files-finish">next_files_finish</link></methodname>
59 <methodparam><parameter role="keyword">result</parameter></methodparam>
61 <methodsynopsis language="python">
62 <methodname><link linkend="method-giofileenumerator--set-pending">set_pending</link></methodname>
63 <methodparam><parameter role="keyword">pending</parameter></methodparam>
71 <title>Ancestry</title>
73 <synopsis>+-- <link linkend="class-gobject">gobject.GObject</link>
74 +-- <link linkend="class-giofileenumerator">gio.FileEnumerator</link>
79 <refsect1 id="properties-giofileenumerator">
80 <title>gio.FileEnumerator Properties</title>
82 <blockquote role="properties">
83 <informaltable pgwide="1" frame="none">
85 <colspec column="1" colwidth="1in"/>
86 <colspec column="2" colwidth="1in"/>
87 <colspec column="3" colwidth="4in"/>
90 <entry>"container"</entry>
91 <entry>Write - Construct only</entry>
92 <entry>The container that is being enumerated.</entry>
102 <title>Description</title>
105 The <link linkend="class-giofileenumerator"><classname>gio.FileEnumerator</classname></link>
106 allows you to operate on a set of
107 <link linkend="class-giofile"><classname>gio.File</classname></link>s
109 <link linkend="class-giofileinfo"><classname>gio.FileInfo</classname></link>
110 structure for each file enumerated (e.g.
111 <methodname><link linkend="method-giofile--enumerate-children">gio.File.enumerate_children</link></methodname>()
112 will return a The <link linkend="class-giofileenumerator"><classname>gio.FileEnumerator</classname></link>
113 for each of the children within a directory).
116 To get the next file's information from a
117 The <link linkend="class-giofileenumerator"><classname>gio.FileEnumerator</classname></link> use
118 <methodname><link linkend="method-giofileenumerator--next-file">gio.FileEnumerator.next_file</link></methodname>()
119 or its asynchronous version,
120 <methodname><link linkend="method-giofileenumerator--next-files-async">gio.FileEnumerator.next_files_async</link></methodname>().
121 Note that the asynchronous version will return a list of
122 <link linkend="class-giofileinfo"><classname>gio.FileInfo</classname></link>s,
123 whereas the synchronous will only return the next file in the enumerator.
126 To close a <link linkend="class-giofileenumerator"><classname>gio.FileEnumerator</classname></link>
127 use <methodname><link linkend="method-giofileenumerator--close">close</link></methodname>,
128 or its asynchronous version,
129 <methodname><link linkend="method-giofileenumerator--close-async">close_async</link></methodname>.
130 Once a <link linkend="class-giofileenumerator"><classname>gio.FileEnumerator</classname></link>
131 is closed, no further actions may be performed on it.
136 <title>Methods</title>
138 <refsect2 id="method-giofileenumerator--close">
139 <title>gio.FileEnumerator.close</title>
141 <programlisting><methodsynopsis language="python">
142 <methodname>close</methodname>
144 <parameter role="keyword">cancellable</parameter><initializer><literal>None</literal></initializer>
146 </methodsynopsis></programlisting>
150 <term><parameter role="keyword">cancellable</parameter> :</term>
151 <listitem><simpara>Optional
152 <link linkend="class-giocancellable"><classname>gio.Cancellable</classname></link>
153 object, <literal>None</literal> to ignore.
154 </simpara></listitem>
157 <term><emphasis>Returns</emphasis> :</term>
158 <listitem><simpara><literal>True</literal> on success or
159 <literal>False</literal> on error.
160 </simpara></listitem>
165 The <methodname>close</methodname>() method releases all resources used by this
166 enumerator, making the
167 <xref linkend="gio-error-constants" endterm="gio-error-constants-title"></xref>
168 return gio.ERROR_CLOSED on all calls.
171 This will be automatically called when the last reference is dropped,
172 but you might want to call this function to make sure resources are released
173 as early as possible.
177 <refsect2 id="method-giofileenumerator--close-async">
178 <title>gio.FileEnumerator.close_async</title>
180 <programlisting><methodsynopsis language="python">
181 <methodname>close_async</methodname>
183 <parameter role="keyword">callback</parameter>
186 <parameter role="keyword">io_priority</parameter><initializer><literal>glib.PRIORITY_DEFAULT</literal></initializer>
189 <parameter role="keyword">cancellable</parameter><initializer><literal>None</literal></initializer>
192 <parameter role="keyword">user_data</parameter><initializer><literal>None</literal></initializer>
194 </methodsynopsis></programlisting>
198 <term><parameter role="keyword">callback</parameter> :</term>
199 <listitem><simpara>A GAsyncReadyCallback to call when the request is satisfied.
200 </simpara></listitem>
203 <term><parameter role="keyword">io_priority</parameter> :</term>
204 <listitem><simpara>The
205 <xref linkend="glib-priority-constants" endterm="glib-priority-constants-title"></xref> of the request.
206 </simpara></listitem>
209 <term><parameter role="keyword">cancellable</parameter> :</term>
210 <listitem><simpara>Optional
211 <link linkend="class-giocancellable"><classname>gio.Cancellable</classname></link>
212 object, <literal>None</literal> to ignore.
213 </simpara></listitem>
216 <term><parameter role="keyword">user_data</parameter> :</term>
217 <listitem><simpara>The data to pass to callback function.
218 </simpara></listitem>
223 The <methodname>close_async</methodname>() method asynchronously closes the file enumerator.
226 If cancellable is not <literal>None</literal>, then the operation can be cancelled by
227 triggering the cancellable object from another thread. If the operation was cancelled,
228 the error gio.ERROR_CANCELLED will be returned in
229 <methodname><link linkend="method-giofileenumerator--close-finish">gio.FileEnumerator.close_finish</link></methodname>().
233 <refsect2 id="method-giofileenumerator--close-finish">
234 <title>gio.FileEnumerator.close_finish</title>
236 <programlisting><methodsynopsis language="python">
237 <methodname>close_finish</methodname>
238 <methodparam><parameter role="keyword">result</parameter></methodparam>
239 </methodsynopsis></programlisting>
243 <term><parameter role="keyword">result</parameter> :</term>
244 <listitem><simpara>a GAsyncResult.
245 </simpara></listitem>
248 <term><emphasis>Returns</emphasis> :</term>
249 <listitem><simpara><literal>True</literal> if the close operation
250 has finished successfully.</simpara></listitem>
255 The <methodname>close_finish</methodname>() method finishes closing a file enumerator, started from
256 <methodname><link linkend="method-giofileenumerator--close-async">gio.FileEnumerator.close_async</link></methodname>().
259 If the file enumerator was already closed when
260 <methodname><link linkend="method-giofileenumerator--close-async">gio.FileEnumerator.close_async</link></methodname>()
261 was called, then this function will report gio.ERROR_CLOSED in error, and return <literal>False</literal>.
262 If the file enumerator had pending operation when the close operation was started, then this function will report
263 gio.ERROR_PENDING, and return <literal>False</literal>. If cancellable was not <literal>None</literal>, then the operation
264 may have been cancelled by triggering the cancellable object from another thread. If the operation was cancelled,
265 the error gio.ERROR_CANCELLED will be set, and <literal>False</literal> will be returned.
269 <refsect2 id="method-giofileenumerator--get-container">
270 <title>gio.FileEnumerator.get_container</title>
272 <programlisting><methodsynopsis language="python">
273 <methodname>get_container</methodname>
274 <methodparam></methodparam>
275 </methodsynopsis></programlisting>
279 <term><emphasis>Returns</emphasis> :</term>
280 <listitem><simpara>the <link linkend="class-giofile"><classname>gio.File</classname></link>
281 which is being enumerated. </simpara></listitem>
286 The <methodname>get_container</methodname>() method gets the
287 <link linkend="class-giofile"><classname>gio.File</classname></link>
288 container which is being enumerated.
292 <refsect2 id="method-giofileenumerator--has-pending">
293 <title>gio.FileEnumerator.has_pending</title>
295 <programlisting><methodsynopsis language="python">
296 <methodname>has_pending</methodname>
297 <methodparam></methodparam>
298 </methodsynopsis></programlisting>
302 <term><emphasis>Returns</emphasis> :</term>
303 <listitem><simpara><literal>True</literal> if the enumerator has pending operations.</simpara></listitem>
308 The <methodname>has_pending</methodname>() method checks if the file enumerator has pending operations.
312 <refsect2 id="method-giofileenumerator--is-closed">
313 <title>gio.FileEnumerator.is_closed</title>
315 <programlisting><methodsynopsis language="python">
316 <methodname>is_closed</methodname>
317 <methodparam></methodparam>
318 </methodsynopsis></programlisting>
322 <term><emphasis>Returns</emphasis> :</term>
323 <listitem><simpara><literal>True</literal> if the enumerator is closed.</simpara></listitem>
328 The <methodname>is_closed</methodname>() method checks if the file enumerator has been closed.
332 <refsect2 id="method-giofileenumerator--next-file">
333 <title>gio.FileEnumerator.next_file</title>
335 <programlisting><methodsynopsis language="python">
336 <methodname>next_file</methodname>
337 <methodparam><parameter role="keyword">cancellable</parameter><initializer><literal>None</literal></initializer></methodparam>
338 </methodsynopsis></programlisting>
342 <term><parameter role="keyword">cancellable</parameter> :</term>
343 <listitem><simpara>Optional
344 <link linkend="class-giocancellable"><classname>gio.Cancellable</classname></link>
345 object, <literal>None</literal> to ignore.
346 </simpara></listitem>
349 <term><emphasis>Returns</emphasis> :</term>
350 <listitem><simpara>A <link linkend="class-giofileinfo"><classname>gio.FileInfo</classname></link>
351 or <literal>None</literal> on error or end of enumerator.
352 </simpara></listitem>
357 The <methodname>next_file</methodname>() method returns information for the next
358 file in the enumerated object. Will block until the information is available.
359 The <link linkend="class-giofileinfo"><classname>gio.FileInfo</classname></link>
360 returned from this function will contain attributes that match the attribute string
361 that was passed when the GFileEnumerator was created.
364 On error, returns <literal>None</literal> and sets error to the error. If the enumerator
365 is at the end, <literal>None</literal> will be returned and error will be unset.
369 <refsect2 id="method-giofileenumerator--next-files-async">
370 <title>gio.FileEnumerator.next_files_async</title>
372 <programlisting><methodsynopsis language="python">
373 <methodname>next_files_async</methodname>
374 <methodparam><parameter role="keyword">num_files</parameter></methodparam>
375 <methodparam><parameter role="keyword">callback</parameter></methodparam>
377 <parameter role="keyword">io_priority</parameter><initializer><literal>glib.PRIORITY_DEFAULT</literal></initializer>
380 <parameter role="keyword">cancellable</parameter><initializer><literal>None</literal></initializer>
383 <parameter role="keyword">user_data</parameter><initializer><literal>None</literal></initializer>
385 </methodsynopsis></programlisting>
389 <term><parameter role="keyword">num_files</parameter> :</term>
390 <listitem><simpara>The number of file info objects to request.
391 </simpara></listitem>
394 <term><parameter role="keyword">callback</parameter> :</term>
395 <listitem><simpara>A GAsyncReadyCallback to call when the request is satisfied.
396 </simpara></listitem>
399 <term><parameter role="keyword">io_priority</parameter> :</term>
400 <listitem><simpara>The
401 <xref linkend="glib-priority-constants" endterm="glib-priority-constants-title"></xref> of the request.
402 </simpara></listitem>
405 <term><parameter role="keyword">cancellable</parameter> :</term>
406 <listitem><simpara>Optional
407 <link linkend="class-giocancellable"><classname>gio.Cancellable</classname></link>
408 object, <literal>None</literal> to ignore.
409 </simpara></listitem>
412 <term><parameter role="keyword">user_data</parameter> :</term>
413 <listitem><simpara>The data to pass to callback function.
414 </simpara></listitem>
419 The <methodname>next_files_async</methodname>() method requests information for a number
420 of files from the enumerator asynchronously. When all i/o for the operation is finished
421 the callback will be called with the requested information.
424 The callback can be called with less than num_files files in case of error or at the
425 end of the enumerator. In case of a partial error the callback will be called with any
426 succeeding items and no error, and on the next request the error will be reported. If a
427 request is cancelled the callback will be called with gio.ERROR_CANCELLED.
430 During an async request no other sync and async calls are allowed, and will result in gio.ERROR_PENDING errors.
433 Any outstanding i/o request with higher priority (lower numerical value) will be executed
434 before an outstanding request with lower priority. Default priority is glib.PRIORITY_DEFAULT.
438 <refsect2 id="method-giofileenumerator--next-files-finish">
439 <title>gio.FileEnumerator.next_files_finish</title>
441 <programlisting><methodsynopsis language="python">
442 <methodname>next_files_finish</methodname>
443 <methodparam><parameter role="keyword">result</parameter></methodparam>
444 </methodsynopsis></programlisting>
448 <term><parameter role="keyword">result</parameter> :</term>
449 <listitem><simpara>a GAsyncResult.
450 </simpara></listitem>
453 <term><emphasis>Returns</emphasis> :</term>
454 <listitem><simpara>A list of
455 <link linkend="class-giofileinfo"><classname>gio.FileInfo</classname></link>s.
456 </simpara></listitem>
461 The <methodname>next_files_finish</methodname>() method finishes the
462 asynchronous operation started with
463 <methodname><link linkend="method-giofileenumerator--next-files-async">gio.FileEnumerator.next_files_async</link></methodname>().
467 <refsect2 id="method-giofileenumerator--set-pending">
468 <title>gio.FileEnumerator.set_pending</title>
470 <programlisting><methodsynopsis language="python">
471 <methodname>set_pending</methodname>
472 <methodparam><parameter role="keyword">pending</parameter></methodparam>
473 </methodsynopsis></programlisting>
477 <term><parameter role="keyword">pending</parameter> :</term>
478 <listitem><simpara>A boolean value.
479 </simpara></listitem>
484 The <methodname>push_current</methodname>() method sets the file enumerator as having pending operations.