gio.drive

Module for Drive interface

Types 2

interfaceDrive

gio.drive.Drive represents a piece of hardware connected to the machine. It’s generally only created for removable hardware or hardware with removable media.

gio.drive.Drive is a container class for gio.volume.Volume objects that stem from the same piece of media. As such, gio.drive.Drive abstracts a drive with (or without) removable media and provides operations for querying whether media is available, determining whether media change is automatically detected and ejecting the media.

If the gio.drive.Drive reports that media isn’t automatically detected, one can poll for media; typically one should not do this periodically as a poll for media operation is potentially expensive and may spin up the drive creating noise.

gio.drive.Drive supports starting and stopping drives with authentication support for the former. This can be used to support a diverse set of use cases including connecting/disconnecting iSCSI devices, powering down external disk enclosures and starting/stopping multi-disk devices such as RAID devices. Note that the actual semantics and side-effects of starting/stopping a gio.drive.Drive may vary according to implementation. To choose the correct verbs in e.g. a file manager, use gio.drive.Drive.getStartStopType.

For porting from GnomeVFS note that there is no equivalent of gio.drive.Drive in that API.

Methods
bool canEject()Checks if a drive can be ejected. Returns: true if the drive can be ejected, false otherwise.
bool canPollForMedia()Checks if a drive can be polled for media changes. Returns: true if the drive can be polled for media changes, false otherwise.
bool canStart()Checks if a drive can be started. Returns: true if the drive can be started, false otherwise.
bool canStartDegraded()Checks if a drive can be started degraded. Returns: true if the drive can be started degraded, false otherwise.
bool canStop()Checks if a drive can be stopped. Returns: true if the drive can be stopped, false otherwise.
void eject(gio.types.MountUnmountFlags flags, gio.cancellable.Cancellable cancellable = null, gio.types.AsyncReadyCallback callback = null)Asynchronously ejects a drive.
bool ejectFinish(gio.async_result.AsyncResult result)Finishes ejecting a drive.
void ejectWithOperation(gio.types.MountUnmountFlags flags, gio.mount_operation.MountOperation mountOperation = null, gio.cancellable.Cancellable cancellable = null, gio.types.AsyncReadyCallback callback = null)Ejects a drive. This is an asynchronous operation, and is finished by calling [gio.drive.Drive.ejectWithOperationFinish] with the drive and #GAsyncResult data returned in the callback.
bool ejectWithOperationFinish(gio.async_result.AsyncResult result)Finishes ejecting a drive. If any errors occurred during the operation, error will be set to contain the errors and false will be returned.
string[] enumerateIdentifiers()Gets the kinds of identifiers that drive has. Use [gio.drive.Drive.getIdentifier] to obtain the identifiers themselves. Returns: a null-terminated array of strings containing kinds of identifiers. ...
gio.icon.Icon getIcon()Gets the icon for drive. Returns: #GIcon for the drive. Free the returned object with [gobject.object.ObjectWrap.unref].
string getIdentifier(string kind)Gets the identifier of the given kind for drive. The only identifier currently available is [gio.types.DRIVE_IDENTIFIER_KIND_UNIX_DEVICE].
string getName()Gets the name of drive. Returns: a string containing drive's name. The returned string should be freed when no longer needed.
string getSortKey()Gets the sort key for drive, if any. Returns: Sorting key for drive or null if no such key is available.
gio.types.DriveStartStopType getStartStopType()Gets a hint about how a drive can be started/stopped. Returns: A value from the #GDriveStartStopType enumeration.
gio.icon.Icon getSymbolicIcon()Gets the icon for drive. Returns: symbolic #GIcon for the drive. Free the returned object with [gobject.object.ObjectWrap.unref].
gio.volume.Volume[] getVolumes()Get a list of mountable volumes for drive.
bool hasMedia()Checks if the drive has media. Note that the OS may not be polling the drive for media changes; see [gio.drive.Drive.isMediaCheckAutomatic] for more details. Returns: true if drive has media, false...
bool hasVolumes()Check if drive has any mountable volumes. Returns: true if the drive contains volumes, false otherwise.
bool isMediaCheckAutomatic()Checks if drive is capable of automatically detecting media changes. Returns: true if the drive is capable of automatically detecting media changes, false otherwise.
bool isMediaRemovable()Checks if the drive supports removable media. Returns: true if drive supports removable media, false otherwise.
bool isRemovable()Checks if the #GDrive and/or its media is considered removable by the user. See [gio.drive.Drive.isMediaRemovable]. Returns: true if drive and/or its media is considered removable, false otherwise.
void pollForMedia(gio.cancellable.Cancellable cancellable = null, gio.types.AsyncReadyCallback callback = null)Asynchronously polls drive to see if media has been inserted or removed.
bool pollForMediaFinish(gio.async_result.AsyncResult result)Finishes an operation started with [gio.drive.Drive.pollForMedia] on a drive.
void start(gio.types.DriveStartFlags flags, gio.mount_operation.MountOperation mountOperation = null, gio.cancellable.Cancellable cancellable = null, gio.types.AsyncReadyCallback callback = null)Asynchronously starts a drive.
bool startFinish(gio.async_result.AsyncResult result)Finishes starting a drive.
void stop(gio.types.MountUnmountFlags flags, gio.mount_operation.MountOperation mountOperation = null, gio.cancellable.Cancellable cancellable = null, gio.types.AsyncReadyCallback callback = null)Asynchronously stops a drive.
bool stopFinish(gio.async_result.AsyncResult result)Finishes stopping a drive.
gulong connectChanged(T)(T callback, Flag!"After" after = No.After)Connect to `Changed` signal.
gulong connectDisconnected(T)(T callback, Flag!"After" after = No.After)Connect to `Disconnected` signal.
gulong connectEjectButton(T)(T callback, Flag!"After" after = No.After)Connect to `EjectButton` signal.
gulong connectStopButton(T)(T callback, Flag!"After" after = No.After)Connect to `StopButton` signal.

Fluent builder implementation template for gio.drive.Drive