Gio文件枚举器

描述 [src]

class Gio.FileEnumerator : GObject.Object
{
  /* No available fields */
}

文件枚举器 允许您操作一组 文件 对象,为每个枚举的文件返回一个 文件信息 结构(例如,g_file_enumerate_children() 将为目录中的每个子项返回一个 文件枚举器)。

要从 文件枚举器 中获取下一个文件的详细信息,请使用 g_file_enumerator_next_file() 或其异步版本,g_file_enumerator_next_files_async()。请注意,异步版本将返回一个 文件信息 对象的列表,而同步版本将只返回枚举器中的下一个文件。

对于非Unix平台,返回文件的顺序是不确定的;有关更多信息,请参阅 g_dir_read_name()。在Unix上,在本地文件上操作时,返回的文件将按inode编号排序。实际上,如果目录未更改,可以假设连续调用(和应用程序)之间返回文件顺序将是稳定的。

如果您的应用程序需要特定的顺序,如按名称或修改时间,则必须在您的应用程序代码中实现此功能。

要关闭 文件枚举器,请使用 g_file_enumerator_close(),或其异步版本,g_file_enumerator_close_async()。一旦关闭 文件枚举器,就不能再对其进行任何操作,并且应使用 g_object_unref() 释放。

祖先

实例方法

g_file_enumerator_close

释放此枚举器使用的所有资源,使枚举器在所有调用上返回 G_IO_ERROR_CLOSED

g_file_enumerator_close_async

异步关闭文件枚举器。

g_file_enumerator_close_finish

完成从 g_file_enumerator_close_async() 开始关闭文件枚举器。

g_file_enumerator_get_child

返回一个新的 GFile 对象,该对象指向 enumerator 的源目录中由 info 命名的文件。此函数主要用于在循环中配合 g_file_enumerator_next_file() 使用。

since: 2.36

g_file_enumerator_get_container

获取正在枚举的 GFile 容器。

since: 2.18

g_file_enumerator_has_pending

检查文件枚举器是否有挂起的操作。

g_file_enumerator_is_closed

检查文件枚举器是否已关闭。

g_file_enumerator_iterate

这是 g_file_enumerator_next_file() 的一个版本,更适合在 C 程序中正确使用。使用 g_file_enumerator_next_file(),返回的 gboolean 值表示“迭代结束或错误”,需要分配一个临时的 GError

since: 2.44

g_file_enumerator_next_file

返回枚举对象中的下一个文件的详细信息。将在信息可用之前阻塞。此函数返回的 GFileInfo 将包含与创建 GFileEnumerator 时传入的属性字符串匹配的属性。

g_file_enumerator_next_files_async

异步地从枚举器请求多个文件的详细信息。当操作的所有 I/O 操作完成后,将以请求的详细信息调用 callback

g_file_enumerator_set_pending

将文件枚举器设置为具有挂起操作。

GObject 继承的方法(43)

请查阅 GObject 了解方法列表。

属性

Gio.FileEnumerator:container

正在枚举的容器。

信号

GObject 继承的信号(1)
GObject::notify

当对象的某个属性通过 g_object_set_property()、g_object_set() 等设置值时,会发射此信号。

类结构

struct GioFileEnumeratorClass {
  GObjectClass parent_class;
  GFileInfo* (* next_file) (
    GFileEnumerator* enumerator,
    GCancellable* cancellable,
    GError** error
  );
  gboolean (* close_fn) (
    GFileEnumerator* enumerator,
    GCancellable* cancellable,
    GError** error
  );
  void (* next_files_async) (
    GFileEnumerator* enumerator,
    int num_files,
    int io_priority,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  GList* (* next_files_finish) (
    GFileEnumerator* enumerator,
    GAsyncResult* result,
    GError** error
  );
  void (* close_async) (
    GFileEnumerator* enumerator,
    int io_priority,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gboolean (* close_finish) (
    GFileEnumerator* enumerator,
    GAsyncResult* result,
    GError** error
  );
  void (* _g_reserved1) (
void
  );
  void (* _g_reserved2) (
void
  );
  void (* _g_reserved3) (
void
  );
  void (* _g_reserved4) (
void
  );
  void (* _g_reserved5) (
void
  );
  void (* _g_reserved6) (
void
  );
  void (* _g_reserved7) (
void
  );
  
}

无描述。

类成员
parent_class: GObjectClass

无描述。

next_file: GFileInfo* (* next_file) ( GFileEnumerator* enumerator, GCancellable* cancellable, GError** error )

无描述。

close_fn: gboolean (* close_fn) ( GFileEnumerator* enumerator, GCancellable* cancellable, GError** error )

无描述。

next_files_async: void (* next_files_async) ( GFileEnumerator* enumerator, int num_files, int io_priority, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )

无描述。

next_files_finish: GList* (* next_files_finish) ( GFileEnumerator* enumerator, GAsyncResult* result, GError** error )

无描述。

close_async: void (* close_async) ( GFileEnumerator* enumerator, int io_priority, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )

无描述。

close_finish: gboolean (* close_finish) ( GFileEnumerator* enumerator, GAsyncResult* result, GError** error )

无描述。

_g_reserved1: void (* _g_reserved1) ( void )

无描述。

_g_reserved2: void (* _g_reserved2) ( void )

无描述。

_g_reserved3: void (* _g_reserved3) ( void )

无描述。

_g_reserved4: void (* _g_reserved4) ( void )

无描述。

_g_reserved5: void (* _g_reserved5) ( void )

无描述。

_g_reserved6: void (* _g_reserved6) ( void )

无描述。

_g_reserved7: void (* _g_reserved7) ( void )

无描述。

虚拟方法

Gio.FileEnumeratorClass.close_async

异步关闭文件枚举器。

Gio.FileEnumeratorClass.close_finish

完成从 g_file_enumerator_close_async() 开始关闭文件枚举器。

Gio.FileEnumeratorClass.next_file

返回枚举对象中的下一个文件的详细信息。将在信息可用之前阻塞。此函数返回的 GFileInfo 将包含与创建 GFileEnumerator 时传入的属性字符串匹配的属性。

Gio.FileEnumeratorClass.next_files_async

异步地从枚举器请求多个文件的详细信息。当操作的所有 I/O 操作完成后,将以请求的详细信息调用 callback