界面

GioVolume

说明 [src]

interface Gio.Volume : GObject.Object

GVolume 界面表示可以挂载的用户可见对象。例如,USB闪存驱动器上的文件系统分区,或者插入光驱的光盘。

如果 GVolume 当前已挂载,则可以使用 g_volume_get_mount() 获取相应的 GMount

挂载 GVolume 实例是一个异步操作。有关异步操作的更多信息,请参阅 GAsyncResultGTask。要挂载一个 GVolume,首先使用 g_volume_mount() 调用(至少)GVolume 实例,可选的 GMountOperation 对象和一个 GAsyncReadyCallback

通常,如果在桌面会话启动时自动挂载所有卷,您可能只想传递 NULLGMountOperation,因为这通常不希望打开大量对话框请求凭证。

当操作已解析完成(无论是成功还是失败)时,将触发回调和通过回调和GAsyncResult实例。然后回调应该调用g_volume_mount_finish()使用GVolume实例和GAsyncResult数据,以查看操作是否成功完成。如果调用g_volume_mount_finish()时存在GError,则它将包含任何错误信息。

注意,当从GnomeVFS移植时,GVolume等同于GnomeVFSDrive

卷标识符

有时需要直接访问卷背后的底层操作系统对象(例如,通过命令行将卷传递给应用程序)。为此,GIO允许为卷获取一个‘标识符’。可以有不同类型的标识符,例如HAL UDIs、文件系统标签、传统的Unix设备(例如/dev/sda2),UUIDs。GIO使用预定义的字符串作为不同类型标识符的名称:`G_VOLUME_IDENTIFIER_KIND_UUID`、`G_VOLUME_IDENTIFIER_KIND_LABEL`等等。使用g_volume_get_identifier()获取卷的标识符。

注意,`G_VOLUME_IDENTIFIER_KIND_HAL_UDI`仅在使用GVFS hal卷监视器时可用。其他卷监视器通常能提供`G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE`标识符,该标识符可用于通过`libhal_manager_find_device_string_match()`获取hal设备。

先决条件

为了实现卷,您的类型必须从GObject继承。

实例方法

g_volume_can_eject

检查卷是否可以弹出。

g_volume_can_mount

检查卷是否可以挂载。

g_volume_eject

弹出卷。这是一个异步操作,通过调用带有`volume`和`GAsyncResult`的g_volume_eject_finish()来完成。

废弃:2.22

g_volume_eject_finish

完成弹出卷的操作。如果在操作过程中发生了任何错误,`error`将设置为包含错误,并将返回`FALSE`。

废弃:2.22

g_volume_eject_with_operation

弹出卷。这是一个异步操作,通过调用带有`volume`和`GAsyncResult`的`g_volume_eject_with_operation_finish()`来完成。

since: 2.22

g_volume_eject_with_operation_finish

完成弹出卷的操作。如果在操作过程中发生了任何错误,`error`将设置为包含错误,并将返回`FALSE`。

since: 2.22

g_volume_enumerate_identifiers

获取卷的《标识符》种类。使用`g_volume_get_identifier()`获取标识符本身。

g_volume_get_activation_root

获取卷的激活根,如果它在挂载之前已知。否则返回`NULL`。如果`NULL`且卷已挂载,那么从`g_volume_get_mount()`获取的`GMount`对象的`g_mount_get_root()`结果将始终等于或是该函数返回值的超集。换句话说,在代码中。

since: 2.18

g_volume_get_drive

获取volume的驱动器。

g_volume_get_icon

获取volume的图标。

g_volume_get_identifier

获取volume指定种类的标识符。有关卷标识符的更多信息,请参阅介绍

g_volume_get_mount

获取volume的挂载点。

g_volume_get_name

获取volume的名称。

g_volume_get_sort_key

获取volume的排序键(如有)。

since: 2.32

g_volume_get_symbolic_icon

获取volume的符号图标。

since: 2.34

g_volume_get_uuid

获取volumeUUID。引用通常基于所涉及卷的文件系统UUID,应视为不可透明字符串。如果没有可用的UUID,则返回NULL

g_volume_mount

挂载卷。这是一个异步操作,通过使用volumecallback中返回的GAsyncResult调用g_volume_mount_finish()来完成。

g_volume_mount_finish

完成挂载卷。如果在操作过程中发生错误,则error将设置为包含错误,并且将返回FALSE

g_volume_should_automount

返回卷是否应该自动挂载。

信号

Gio.Volume::changed

在卷已改变时发出。

Gio.Volume::removed

GVolume被移除时发出此信号。如果接收者持有对该对象的引用,则应释放它们,以便对象可以被最终化。

接口结构

struct GioVolumeIface {
  GTypeInterface g_iface;
  void (* changed) (
    GVolume* volume
  );
  void (* removed) (
    GVolume* volume
  );
  char* (* get_name) (
    GVolume* volume
  );
  GIcon* (* get_icon) (
    GVolume* volume
  );
  char* (* get_uuid) (
    GVolume* volume
  );
  GDrive* (* get_drive) (
    GVolume* volume
  );
  GMount* (* get_mount) (
    GVolume* volume
  );
  gboolean (* can_mount) (
    GVolume* volume
  );
  gboolean (* can_eject) (
    GVolume* volume
  );
  void (* mount_fn) (
    GVolume* volume,
    GMountMountFlags flags,
    GMountOperation* mount_operation,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gboolean (* mount_finish) (
    GVolume* volume,
    GAsyncResult* result,
    GError** error
  );
  void (* eject) (
    GVolume* volume,
    GMountUnmountFlags flags,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gboolean (* eject_finish) (
    GVolume* volume,
    GAsyncResult* result,
    GError** error
  );
  char* (* get_identifier) (
    GVolume* volume,
    const char* kind
  );
  char** (* enumerate_identifiers) (
    GVolume* volume
  );
  gboolean (* should_automount) (
    GVolume* volume
  );
  GFile* (* get_activation_root) (
    GVolume* volume
  );
  void (* eject_with_operation) (
    GVolume* volume,
    GMountUnmountFlags flags,
    GMountOperation* mount_operation,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gboolean (* eject_with_operation_finish) (
    GVolume* volume,
    GAsyncResult* result,
    GError** error
  );
  const gchar* (* get_sort_key) (
    GVolume* volume
  );
  GIcon* (* get_symbolic_icon) (
    GVolume* volume
  );
  
}

实现可挂载卷操作的接口。

接口成员
g_iface
GTypeInterface
 

父界面。

changed
void (* changed) (
    GVolume* volume
  )
 

卷状态发生变化时发出的更改信号。

removed
void (* removed) (
    GVolume* volume
  )
 

GVolume被移除时发出的移除信号。如果接收者持有对该对象的引用,则应释放它们,以便对象可以被最终化。

get_name
char* (* get_name) (
    GVolume* volume
  )
 

获取包含GVolume名称的字符串。

get_icon
GIcon* (* get_icon) (
    GVolume* volume
  )
 

获取代表GVolumeGIcon

get_uuid
char* (* get_uuid) (
    GVolume* volume
  )
 

获取GVolumeUUID。引用通常基于所涉及挂载的文件系统UUID,应视为不可透明字符串。如果没有可用的UUID,则返回NULL

get_drive
GDrive* (* get_drive) (
    GVolume* volume
  )
 

获取卷所在的GDrive。如果GVolume未与GDrive关联,则返回NULL

get_mount
GMount* (* get_mount) (
    GVolume* volume
  )
 

获取表示已挂载卷的GMount。如果GVolume未挂载,则返回NULL

can_mount
gboolean (* can_mount) (
    GVolume* volume
  )
 

如果GVolume可以挂载,则返回TRUE

can_eject
gboolean (* can_eject) (
    GVolume* volume
  )
 

检查郭Volume是否可以弹出。

mount_fn
void (* mount_fn) (
    GVolume* volume,
    GMountMountFlags flags,
    GMountOperation* mount_operation,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  )
 

挂载给定的GVolume。当一个挂载操作因用户通过GMountOperation实例输入而中止时,GVolume实现必须在完成挂载操作之前发出GMountOperation::aborted信号。

mount_finish
gboolean (* mount_finish) (
    GVolume* volume,
    GAsyncResult* result,
    GError** error
  )
 

完成挂载操作。

弹出
void (* eject) (
    GVolume* volume,
    GMountUnmountFlags flags,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  )
 

弹出指定的GVolume

弹出完成
gboolean (* eject_finish) (
    GVolume* volume,
    GAsyncResult* result,
    GError** error
  )
 

完成弹出操作。

get_identifier
char* (* get_identifier) (
    GVolume* volume,
    const char* kind
  )
 

返回给定类型的identifier,如果没有指定GVolume则返回NULL

enumerate_identifiers
char** (* enumerate_identifiers) (
    GVolume* volume
  )
 

返回一个字符串数组,列出GVolume拥有的identifier类型。

should_automount
gboolean (* should_automount) (
    GVolume* volume
  )
 

如果GVolume应该自动挂载,则返回TRUE

get_activation_root
GFile* (* get_activation_root) (
    GVolume* volume
  )
 

如果有事先知道的激活根,则返回GVolume的激活根,如果没有则返回NULL

eject_with_operation
void (* eject_with_operation) (
    GVolume* volume,
    GMountUnmountFlags flags,
    GMountOperation* mount_operation,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  )
 

使用GMountOperation开始弹出GVolume。从2.22版本开始。

eject_with_operation_finish
gboolean (* eject_with_operation_finish) (
    GVolume* volume,
    GAsyncResult* result,
    GError** error
  )
 

使用GMountOperation完成弹出操作。从2.22版本开始。

get_sort_key
const gchar* (* get_sort_key) (
    GVolume* volume
  )
 

获取用于排序GVolume实例的键,如果不存在则返回NULL。从2.32版本开始。

get_symbolic_icon
GIcon* (* get_symbolic_icon) (
    GVolume* volume
  )
 

获取表示GVolume的符号GIcon。从2.34版本开始。

虚拟方法

Gio.Volume.can_eject

检查卷是否可以弹出。

Gio.Volume.can_mount

检查卷是否可以挂载。

Gio.Volume.changed

卷状态发生变化时发出的更改信号。

Gio.Volume.eject

弹出卷。这是一个异步操作,通过调用带有`volume`和`GAsyncResult`的g_volume_eject_finish()来完成。

废弃:2.22

Gio.Volume.eject_finish

完成弹出卷的操作。如果在操作过程中发生了任何错误,`error`将设置为包含错误,并将返回`FALSE`。

废弃:2.22

Gio.Volume.eject_with_operation

弹出卷。这是一个异步操作,通过调用带有`volume`和`GAsyncResult`的`g_volume_eject_with_operation_finish()`来完成。

since: 2.22

Gio.Volume.eject_with_operation_finish

完成弹出卷的操作。如果在操作过程中发生了任何错误,`error`将设置为包含错误,并将返回`FALSE`。

since: 2.22

Gio.Volume.enumerate_identifiers

获取卷的《标识符》种类。使用`g_volume_get_identifier()`获取标识符本身。

Gio.Volume.get_activation_root

获取卷的激活根,如果它在挂载之前已知。否则返回`NULL`。如果`NULL`且卷已挂载,那么从`g_volume_get_mount()`获取的`GMount`对象的`g_mount_get_root()`结果将始终等于或是该函数返回值的超集。换句话说,在代码中。

since: 2.18

Gio.Volume.get_drive

获取volume的驱动器。

Gio.Volume.get_icon

获取volume的图标。

Gio.Volume.get_identifier

获取volume指定种类的标识符。有关卷标识符的更多信息,请参阅介绍

Gio.Volume.get_mount

获取volume的挂载点。

Gio.Volume.get_name

获取volume的名称。

Gio.Volume.get_sort_key

获取volume的排序键(如有)。

since: 2.32

Gio.Volume.get_symbolic_icon

获取volume的符号图标。

since: 2.34

Gio.Volume.get_uuid

获取volumeUUID。引用通常基于所涉及卷的文件系统UUID,应视为不可透明字符串。如果没有可用的UUID,则返回NULL

Gio.Volume.mount_finish

完成挂载卷。如果在操作过程中发生错误,则error将设置为包含错误,并且将返回FALSE

Gio.Volume.mount_fn

挂载卷。这是一个异步操作,通过使用volumecallback中返回的GAsyncResult调用g_volume_mount_finish()来完成。

Gio.Volume.removed

GVolume被移除时发出的移除信号。如果接收者持有对该对象的引用,则应释放它们,以便对象可以被最终化。

Gio.Volume.should_automount

返回卷是否应该自动挂载。