界面
GioVolume
说明 [src]
interface Gio.Volume : GObject.Object
GVolume
界面表示可以挂载的用户可见对象。例如,USB闪存驱动器上的文件系统分区,或者插入光驱的光盘。
如果 GVolume
当前已挂载,则可以使用 g_volume_get_mount()
获取相应的 GMount
。
挂载 GVolume
实例是一个异步操作。有关异步操作的更多信息,请参阅 GAsyncResult
和 GTask
。要挂载一个 GVolume
,首先使用 g_volume_mount()
调用(至少)GVolume
实例,可选的 GMountOperation
对象和一个 GAsyncReadyCallback
。
通常,如果在桌面会话启动时自动挂载所有卷,您可能只想传递 NULL
到 GMountOperation
,因为这通常不希望打开大量对话框请求凭证。
当操作已解析完成(无论是成功还是失败)时,将触发回调和通过回调和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_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_get_activation_root
获取卷的激活根,如果它在挂载之前已知。否则返回`NULL
`。如果`NULL
`且卷已挂载,那么从`g_volume_get_mount()
`获取的`GMount
`对象的`g_mount_get_root()
`结果将始终等于或是该函数返回值的超集。换句话说,在代码中。
since: 2.18
信号
接口结构
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 |
|
父界面。 |
|
changed |
|
卷状态发生变化时发出的更改信号。 |
|
removed |
|
当 |
|
get_name |
|
获取包含 |
|
get_icon |
|
获取代表 |
|
get_uuid |
|
获取 |
|
get_drive |
|
获取卷所在的 |
|
get_mount |
|
获取表示已挂载卷的 |
|
can_mount |
|
如果 |
|
can_eject |
|
检查 |
|
mount_fn |
|
挂载给定的 |
|
mount_finish |
|
完成挂载操作。 |
|
弹出 |
|
弹出指定的 |
|
弹出完成 |
|
完成弹出操作。 |
|
get_identifier |
|
返回给定类型的 |
|
enumerate_identifiers |
|
返回一个字符串数组,列出 |
|
should_automount |
|
如果 |
|
get_activation_root |
|
如果有事先知道的激活根,则返回 |
|
eject_with_operation |
|
使用 |
|
eject_with_operation_finish |
|
使用 |
|
get_sort_key |
|
获取用于排序 |
|
get_symbolic_icon |
|
获取表示 |
虚拟方法
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.get_activation_root
获取卷的激活根,如果它在挂载之前已知。否则返回`NULL
`。如果`NULL
`且卷已挂载,那么从`g_volume_get_mount()
`获取的`GMount
`对象的`g_mount_get_root()
`结果将始终等于或是该函数返回值的超集。换句话说,在代码中。
since: 2.18