私はGIOを使用しようとしています。GVolumeMonitor を使用してボリュームの変更をキャッチし、ボリュームのリストを取得する方法を見つけました。g_volume_monitor_get_mounts
関数は、既存の GMount のリストを表示します。それらのそれぞれは、HDD パーティションまたはネットワーク共有 (ftp、smb、sftp など) のマウントを表すことができます。を使用して HDD パーティションをマウントすることは可能のようg_volume_mount
です。しかし、ネットワーク共有を表す GMount を作成するにはどうすればよいでしょうか? どのクラスがこれを担当していますか?
これが私のコードです:
GVolumeMonitor* monitor = g_volume_monitor_get();
GList* list = g_volume_monitor_get_mounts(monitor);
for(; list; list = list->next) {
GMount* mount = static_cast<GMount*>(list->data);
GFile* file = g_mount_get_root(mount);
qDebug() << "Mount(" << g_mount_get_name(mount) <<
", " << g_file_get_path(file) << ")";
}
( と がなければならないことはわかっていますg_object_unref
。g_list_free
)
出力:
Mount( SFTP for ri on host.org , /home/ri/.gvfs/SFTP for ri on host.org )
Mount( Yellow hard disk , /media/Yellow hard disk )
nautilus を使用して最初の sftp マウントを作成しました。今、私はこの機能を自分で実装したいと考えています。ターゲット OS は Ubuntu 12.04 です。