1

私は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_unrefg_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 です。

4

1 に答える 1

1

私はあなたが探しているかもしれないと思うg_file_mount_enclosing_volume()

于 2012-06-17T17:17:16.210 に答える