Basics
Guides
API Reference
Basics
Guides
API Reference
[378:14] static extends: object
Generated metadata helpers for FileEnumerator class surfaces.
properties ()
Returns property metadata for
FileEnumerator.
A list.[30:7] extends: object
GFileEnumerator allows you to operate on a set of [iface@Gio.File] objects,
returning a [class@Gio.FileInfo] structure for each file enumerated (e.g.
[method@Gio.File.enumerate_children] will return a GFileEnumerator for each
of the children within a directory). To get the next file's information from
a GFileEnumerator, use [method@Gio.FileEnumerator.next_file] or its
asynchronous version, [method@Gio.FileEnumerator.next_files_async]. Note that
the asynchronous version will return a list of [class@Gio.FileInfo] objects,
whereas the synchronous will only return the next file in the enumerator. The
ordering of returned files is unspecified for non-Unix platforms; for more
information, see [method@GLib.Dir.read_name]. On Unix, when operating on
local files, returned files will be sorted by inode number. Effectively you
can assume that the ordering of returned files will be stable between
successive calls (and applications) assuming the directory is unchanged. If
your application needs a specific ordering, such as by name or modification
time, you will have to implement that in your application code. To close a
GFileEnumerator, use [method@Gio.FileEnumerator.close], or its asynchronous
version, [method@Gio.FileEnumerator.close_async]. Once a GFileEnumerator is
closed, no further actions may be performed on it, and it should be freed
with [method@GObject.Object.unref].
GFileEnumerator (Handle = null)
Creates a new
FileEnumeratorby wrapping a native handle or another wrapper.
Handle is the native handle or another wrapper whose handle to adopt.toNativeHandle (Source)
Normalizes a constructor argument into a raw pointer carrier. Accepts a raw NativeHandle, a raw NativeBuffer returned from
fn.call(...), another generated wrapper exposinghandle(), or null. Returns null when the argument carries no pointer.
Source is the raw handle, raw buffer, wrapper, or null.A raw pointer carrier or null when no pointer is present.getLib ()
Returns the opened native library for this generated wrapper.
The opened native library.handle ()
Returns the wrapped NativeHandle.
The wrapped NativeHandle.isNull ()
Returns true when the wrapped handle is null.
A bool.describe ()
Returns a small string for debugging generated wrappers.
A string.asObject ()
Wraps this handle as
GObject.
A GObject object.close (object cancellable)
Releases all resources used by this enumerator, making the enumerator return %G_IO_ERROR_CLOSED on all calls. This will be automatically called when the last reference is dropped, but you might want to call this function to make sure resources are released as early as possible.
cancellable is optional #GCancellable object, %NULL to ignore..#TRUE on success or #FALSE on error..close_async (int io_priority, object cancellable, user_data)
Asynchronously closes the file enumerator. If @cancellable is not %NULL, then the operation can be cancelled by triggering the cancellable object from another thread. If the operation was cancelled, the error %G_IO_ERROR_CANCELLED will be returned in g_file_enumerator_close_finish().
io_priority is the I/O priority of the request.cancellable is optional #GCancellable object, %NULL to ignore..callback is a #GAsyncReadyCallback to call when the request is satisfied.user_data is the data to pass to callback function.None.close_finish (object result)
Finishes closing a file enumerator, started from g_file_enumerator_close_async(). If the file enumerator was already closed when g_file_enumerator_close_async() was called, then this function will report %G_IO_ERROR_CLOSED in @error, and return %FALSE. If the file enumerator had pending operation when the close operation was started, then this function will report %G_IO_ERROR_PENDING, and return %FALSE. If @cancellable was not %NULL, then the operation may have been cancelled by triggering the cancellable object from another thread. If the operation was cancelled, the error %G_IO_ERROR_CANCELLED will be set, and %FALSE will be returned.
result is a #GAsyncResult..%TRUE if the close operation has finished successfully..get_child (object info)
Return a new #GFile which refers to the file named by @info in the source directory of @enumerator. This function is primarily intended to be used inside loops with g_file_enumerator_next_file(). To use this, %G_FILE_ATTRIBUTE_STANDARD_NAME must have been listed in the attributes list used when creating the #GFileEnumerator. This is a convenience method that's equivalent to: |[ gchar *name = g_file_info_get_name (info); GFile *child = g_file_get_child (g_file_enumerator_get_container (enumr), name); ]|
info is a #GFileInfo gotten from g_file_enumerator_next_file() or the async equivalents..a #GFile for the #GFileInfo passed it..get_container ()
Get the #GFile container which is being enumerated.
the #GFile which is being enumerated..has_pending ()
Checks if the file enumerator has pending operations.
%TRUE if the @enumerator has pending operations..is_closed ()
Checks if the file enumerator has been closed.
%TRUE if the @enumerator is closed..iterate (object cancellable)
This is a version of g_file_enumerator_next_file() that's easier to use correctly from C programs. With g_file_enumerator_next_file(), the gboolean return value signifies "end of iteration or error", which requires allocation of a temporary #GError. In contrast, with this function, a %FALSE return from g_file_enumerator_iterate() always means "error". End of iteration is signaled by @out_info or @out_child being %NULL. Another crucial difference is that the references for @out_info and @out_child are owned by @direnum (they are cached as hidden properties). You must not unref them in your own code. This makes memory management significantly easier for C code in combination with loops. Finally, this function optionally allows retrieving a #GFile as well. You must specify at least one of @out_info or @out_child. The code pattern for correctly using g_file_enumerator_iterate() from C is: |[ direnum = g_file_enumerate_children (file, ...); while (TRUE) { GFileInfo *info; if (!g_file_enumerator_iterate (direnum, &info, NULL, cancellable, error)) goto out; if (!info) break; ... do stuff with "info"; do not unref it! ... } out: g_object_unref (direnum); // Note: frees the last @info ]|
out_info is Output location for the next #GFileInfo, or %NULL.out_child is Output location for the next #GFile, or %NULL.cancellable is a #GCancellable.next_file (object cancellable)
Returns information for the next file in the enumerated object. Will block until the information is available. The #GFileInfo returned from this function will contain attributes that match the attribute string that was passed when the #GFileEnumerator was created. See the documentation of #GFileEnumerator for information about the order of returned files. On error, returns %NULL and sets @error to the error. If the enumerator is at the end, %NULL will be returned and @error will be unset.
cancellable is optional #GCancellable object, %NULL to ignore..A #GFileInfo or %NULL on error or end of enumerator. Free the returned object with g_object_unref() when no longer needed..next_files_async (int num_files, int io_priority, object cancellable, user_data)
Request information for a number of files from the enumerator asynchronously. When all I/O for the operation is finished the @callback will be called with the requested information. See the documentation of #GFileEnumerator for information about the order of returned files. Once the end of the enumerator is reached, or if an error occurs, the
will be called with an empty list. In this case, the previous call to g_file_enumerator_next_files_async() will typically have returned fewer than @num_files items. If a request is cancelled the callback will be called with %G_IO_ERROR_CANCELLED. This leads to the following pseudo-code usage: |[ g_autoptr(GFile) dir = get_directory (); g_autoptr(GFileEnumerator) enumerator = NULL; g_autolist(GFileInfo) files = NULL; g_autoptr(GError) local_error = NULL; enumerator = yield g_file_enumerate_children_async (dir, G_FILE_ATTRIBUTE_STANDARD_NAME "," G_FILE_ATTRIBUTE_STANDARD_TYPE, G_FILE_QUERY_INFO_NONE, G_PRIORITY_DEFAULT, cancellable, …, &local_error); if (enumerator == NULL) g_error ("Error enumerating: %s", local_error->message); // Loop until no files are returned, either because the end of the enumerator // has been reached, or an error was returned. do { files = yield g_file_enumerator_next_files_async (enumerator, 5, // number of files to request G_PRIORITY_DEFAULT, cancellable, …, &local_error); // Process the returned files, but don’t assume that exactly 5 were returned. for (GList *l = files; l != NULL; l = l->next) { GFileInfo *info = l->data; handle_file_info (info); } } while (files != NULL); if (local_error != NULL && !g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) g_error ("Error while enumerating: %s", local_error->message); ]| During an async request no other sync and async calls are allowed, and will result in %G_IO_ERROR_PENDING errors. Any outstanding I/O request with higher priority (lower numerical value) will be executed before an outstanding request with lower priority. Default priority is %G_PRIORITY_DEFAULT.num_files is the number of file info objects to request.io_priority is the I/O priority of the request.cancellable is optional #GCancellable object, %NULL to ignore..callback is a #GAsyncReadyCallback to call when the request is satisfied.user_data is the data to pass to callback function.None.next_files_finish (object result)
Finishes the asynchronous operation started with g_file_enumerator_next_files_async().
result is a #GAsyncResult..a #GList of #GFileInfos. You must free the list with g_list_free() and unref the infos with g_object_unref() when you're done with them..set_pending (bool pending)
Sets the file enumerator as having pending operations.
pending is a boolean value..None.next_files_finish_list ()
Returns
next_files_finishas an Aussom list of wrapper objects. This companion method materializes the full collection up front; usenext_files_finish()when lazy or change-notify access is required.
An Aussom list of elements.
Aussom
Write once. Embed everywhere.
Copyright 2026 Austin Lehman. All rights reserved.