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.DRIVEIDENTIFIERKINDUNIXDEVICE].
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.